1
나는 다음과 같이 정의 된 동일한 테이블에서 두 외국 키가 작동하지 동일한 테이블에서 두 개의 외래 키 :엔티티 프레임 워크 코드 첫 번째 -
modelBuilder.Entity<OfferTemplate>()
.HasRequired(ca => ca.CompanyAgentBuyer)
.WithMany(t => t.OfferTemplatesAsBuyer)
.HasForeignKey(ca => ca.CompanyAgentBuyer_CompanyAgentID)
.WillCascadeOnDelete(false);
modelBuilder.Entity<OfferTemplate>()
.HasOptional(ca => ca.CompanyAgentBroker)
.WithMany(t => t.OfferTemplatesAsBroker)
.HasForeignKey(ca => ca.CompanyAgentBroker_CompanyAgentID)
.WillCascadeOnDelete(false);
:이 설정을 가지고 모델에
public class OfferTemplate { ...
[ForeignKey("CompanyAgentBuyer_CompanyAgentID")]
[InverseProperty("OfferTemplatesAsBuyer")]
public virtual CompanyAgent CompanyAgentBuyer { get; set; }
[ForeignKey("CompanyAgentBroker_CompanyAgentID")]
[InverseProperty("OfferTemplatesAsBroker")]
public virtual CompanyAgent CompanyAgentBroker { get; set; }
public int CompanyAgentBuyer_CompanyAgentID { get; set; }
public int? CompanyAgentBroker_CompanyAgentID { get; set; }
...
}
을 지금까지 쿼리를 수행 할 때를 제외하고는 모든 것이 작동합니다.
var templates = from user in context.UsersInformation
from cTemplate in context.OfferTemplates
where user.User.Equals(userID) && cTemplate.Company == user.Company
select cTemplate;
var x = templates.FirstOrDefault().CompanyAgentBuyer;
ID 속성 (CompanyAgentBuye r_CompanyAgentID & CompanyAgentBroker_CompanyAgentID) 인스턴스가 채워지지 않습니다 (이 경우 x). Include 메서드를 사용하여 시도했지만 작동하지 않았다. 내가 누락 된 아이디어가 있습니까?
modelBuilder.Entity<CompanyAgent>()
.HasMany(e => e.OfferTemplatesAsBroker)
.WithOptional(e => e.CompanyAgentBroker)
.HasForeignKey(e => e.CompanyAgentBroker_CompanyAgentID);
modelBuilder.Entity<CompanyAgent>()
.HasMany(e => e.OfferTemplatesAsBuyer)
.WithRequired(e => e.CompanyAgentBuyer)
.HasForeignKey(e => e.CompanyAgentBuyer_CompanyAgentID)
.WillCascadeOnDelete(false);
지금이 작동 :
어디에서 포함합니까? 조인 및 프로젝션 쿼리를 수행하므로 쿼리 재 그룹화 후에 포함되지 않으면 포함되지 않습니다. – DevilSuichiro
@DevilSuichiro 감사합니다. 아니요, 지금 포함을 사용하고 있지 않습니다. – paburgos