Dieser Artikel macht mich verrückt ;-) Ich versuche, eine einfache Abfrage Verbinden von zwei TabellenMVC 4. und Entity Framework Table-Join
ich zu tun habe folgendes:
Repository Klasse Methode
public IQueryable<ADPerson> FindAll(string UserId)
{
return (from p in db.ADPerson
select p);
}
In meinem Controller:
var ADPersonList = from o in ADPersonDB.FindAll(GetUserId())
join c in MSDNTypeDB.FindAll(GetUserId()) on o.MsdnTypeId equals c.MsdnTypeId
select new ADPerson()
{
AdPersonId = o.AdPersonId,
SamAccountName = o.SamAccountName,
Description = o.Description,
DisplayName = o.DisplayName,
UserPrincipalName = o.UserPrincipalName,
Enabled = o.Enabled,
LastUpdated = o.LastUpdated,
OnlineAssetTag = o.OnlineAssetTag,
MsdnTypeId = o.MsdnTypeId,
MsdnSubscription = c.MsdnTypeDescription,
};
ich halte eine E bekommen rror:
{"The specified LINQ expression contains references to queries that are associated with different contexts."}
Ich habe auch versucht, in das Repository-Klasse hinzu:
Repository Klasse Methode
public IQueryable<ADPerson> FindAll(string UserId)
{
//return (from p in db.ADPerson
// select p);
var query = from o in db.ADPerson
join c in db.MsdnTypes on o.MsdnTypeId equals c.MsdnTypeId
select new ADPerson()
{
AdPersonId = o.AdPersonId,
SamAccountName = o.SamAccountName,
Description = o.Description,
DisplayName = o.DisplayName,
UserPrincipalName = o.UserPrincipalName,
Enabled = o.Enabled,
LastUpdated = o.LastUpdated,
OnlineAssetTag = o.OnlineAssetTag,
MsdnTypeId = o.MsdnTypeId,
MsdnSubscription = c.MsdnTypeDescription,
};
return query;
}
ist es wirklich so schwer, eine einfache zwischen zwei Tabellen zu tun, verbinden und die Variable bevölkern in Entity Framework
Dank
Ist es der gleiche Fehler der zweite Methode verwenden? – mattytommo
Ausgezeichneter Punkt: Nein, der zweite Fehler lautet: Die Entität oder der komplexe Typ 'project.Models.ADPerson' kann nicht in einer LINQ to Entities-Abfrage erstellt werden. –
RE: der zweite Fehler. Das liegt daran, dass Sie auf eine zugeordnete Entität nicht projizieren können. Sie können die Abfrage auf ein anonymen Objekt projizieren und anschließend der ADPerson-Entität anschließend zuordnen. –