ta pozycja będzie doprowadza mnie do szaleństwa ;-) Próbuję zrobić proste zapytanie łączącą dwie tabeleMVC i Entity Framework 4. Tabela Dołącz
Mam następujący:
metody Repository klasy
public IQueryable<ADPerson> FindAll(string UserId)
{
return (from p in db.ADPerson
select p);
}
w moim kontrolera:
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,
};
Wciąż dostaję e rror:
{"The specified LINQ expression contains references to queries that are associated with different contexts."}
Próbowałem też dodanie do repozytorium Klasa:
metoda Repository klasy
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;
}
Czy to naprawdę tak trudno zrobić proste połączenie między dwiema tabelami i wypełnić zmiennej w Entity framework
Dzięki
Czy to ten sam błąd za pomocą drugiej metody? – mattytommo
Doskonały punkt: brak błędu zwracanego w drugim przypadku: Jednostka lub typ złożony "project.Models.ADPerson" nie może zostać skonstruowany w kwerendzie LINQ to Entities. –
RE: drugi błąd. Dzieje się tak, ponieważ nie można * projektować * na zmapowany obiekt. Możesz wysłać zapytanie do anonimowego obiektu, a następnie zmapować go do encji ADPerson, po czym –