Die explizite Konstruktion des entitätstyps [MeineKlasse] in der Abfrage nicht erlaubt
Wie der Titel sagt, habe ich die folgende Ausnahme:
Beschreibung: Ereigniscode: 3005 Veranstaltung
Meldung: Eine nicht behandelte Ausnahme ist
aufgetreten. Informationen zur Ausnahme:
Der Ausnahme-Typ: NotSupportedException aus
Exception message: die Explizite Konstruktion des entitätstyps
'Unternehmen.Projekt.Core.Domain.Freund'
in der Abfrage ist nicht erlaubt.
Bin ich mit LINQ to SQL und habe folgenden code in meinem datacontext:
var friends2 = (
from f in dc.Friends
where f.MyFriendsAccountId == accountId
where f.AccountId != accountId
select new
{
f.FriendId,
AccountId = f.MyFriendsAccountId,
MyFriendsAccountId = f.AccountId,
f.CreateDate,
f.Timestamp
}).Distinct();
result.AddRange(
from o in friends2
select new Friend()
{
FriendId = o.FriendId,
AccountId = o.AccountId,
CreateDate = o.CreateDate,
MyFriendsAccountId = o.MyFriendsAccountId,
Timestamp = o.Timestamp
});
der Letzte code-block wirft die Fehler-und ich bin mir ziemlich sicher, dass es diese Aussage
das ist der Schuldige:
.Select( o => **new Friend**
Wie soll ich Nacharbeiten mein code um diesen Fehler zu vermeiden?
- Beantwortet hier: stackoverflow.com/questions/787296/...
- Vielen Dank, aber ich bin immer noch nicht ganz klar. Ich würde schätzen, eine Abbildung gegeben, meine Besondere situation. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einrichtungen, die Teil der Daten, der Kontext kann nicht erstellt werden mit einer LINQ-Abfrage. Dies ist eine durchdachte design-Entscheidung von C# - team. Da die Entitäten newed bis (manuell) in die
Select
Aussage, das würde bedeuten, dass Sie werden nicht verfolgt durch dieDataContext
und dies kann verwirren Entwickler. Auf der anderen Seite, wenn der DataContext automatisch einfügen, auf abschicken diese newed bis Entitäten, das würde verwirrend sein als gut. Die einzige Verbleibende Möglichkeit war die Kommunikation an die Entwickler, dass dies keine so gute Idee, das zu tun, und das ist, was du gesehen hast passiert.result.AddRange(from o in friends2 select
zuresult.AddRange(from o in friends2.ToArray() select
.Es wird funktionieren, wenn Sie nicht über Primärschlüssel legen Sie für alle Spalten, die in deiner Freunde-Klasse. So änderungen nicht nachverfolgt werden, dass die Klasse mehr, aber dein code funktioniert.