EF 4를 사용하고 있으며 Consultant, User 및 OrganisationArea 엔티티가 있습니다. 각 컨설턴트 엔티티에는 사용자 탐색 속성이 있으며 각 사용자 엔티티는 많은 OrganisationAreas에 할당 될 수 있습니다. 나는 특정 OrganisationArea에 배정 된 컨설턴트 목록을 임베디드 사용자 속성과 함께 얻으려고합니다.LINQtoEntities에 nav 속성을 검색하지 않습니다.
이내 컨설턴트 엔티티는 사용자의 재산과 같이 그것의 뒤따라야과 성을 결합하여 컨설턴트의 전체 이름을 반환하는 읽기 전용 속성이있다 :
public string FullName
{
get { return User.Forename + " " + User.Surname; }
}
이 Linq를 작동 다음, 그것을 검색하는 컨설턴트는 필요에 따라 할당되지만 사용자 속성은 포함하지 않습니다. 왜 볼 수 있니?
var result = from c in _dbContext.Consultants.Include("User")
from u in _dbContext.SystemUsers
from oa in _dbContext.OrganisationAreas
where oa.OrganisationAreaId == _sharedInfo.LoggedInSite.OrganisationAreaId
&& u.Current
&& c.UserId == u.UserId
&& c.User.Sites.Count(s => s.OrganisationAreaId == _sharedInfo.LoggedInSite.OrganisationAreaId) > 0
select c;
내가 만들
와 유형 컨설턴트의 ObservableCollection에와 컬렉션에 전체 이름 속성을 결합하려고까지 새로운는, 사용자가 null입니다.익명 형식을 선택하고 consultant.user에 액세스하여 다음과 같이 내 익명 형식을 반복하면서 해결했습니다. 그러나 놓친 내용을 이해하고 싶습니다.
var result = from c in _dbContext.Consultants
from u in _dbContext.SystemUsers
from oa in _dbContext.OrganisationAreas
where oa.OrganisationAreaId == _sharedInfo.LoggedInSite.OrganisationAreaId
&& u.Current
&& c.UserId == u.UserId
&& c.User.Sites.Count(s => s.OrganisationAreaId == _sharedInfo.LoggedInSite.OrganisationAreaId) > 0
select
new
{
Consultant = c,
User = c.User
};
var theConsultants = result.ToList();
ConsultantUsers = new ObservableCollection<Consultant>();
foreach (var rec in theConsultants)
{
ConsultantUsers.Add(rec.Consultant);
}
도움 주셔서 감사합니다.