다음과 같은 많은 관계 테이블이 있습니다.EF 코드 첫 번째 CTP5, Many to Many 테이블의 Include 메서드 사용
public class Shop{
public int Id { get; set; }
public virtual ICollection<ShopFacility> ShopFacilities { get; set; }
}
public class ShopFacility
{
public int Id { get; set; }
public int ShopId { get; set; }
public int FacilityId { get; set; }
public virtual Shop Shop { get; set; }
public virtual Facility Facility { get; set; }
}
public class Facility
{
public int Id { get; set; }
public virtual ICollection<ShopFacility> ShopFacilities { get; set; }
}
및 상점 정보를 얻으십시오.
내가 원하는 것은 문자열 대신에 다 대다 관계에 대해 람다 식으로 Include 메서드를 호출하는 것입니다. 아래 코드와 같이 구현하려고 시도했습니다.
using (var context = new DataContext())
{
return context.Shops.Include(s => s.ShopFacilities)
.Include(s => s.ShopFacilities.Facility) // Cannot compile
.First(x => x.Id == id);
}
하지만 내가 컴파일 할 수 없다고 생각합니다. 실제로 첫 번째 코드 단편은 잘 작동하므로 기본적으로 괜찮습니다. 근본적인 해결 방법이 있는지 궁금합니다.
어떤 도움을 주시면 감사하겠습니다,
유
ShopFacility 클래스가 실제로 필요 없다고 말하고 싶습니다. Shop 클래스에는'ICollection'이 있고 시설 클래스에는'ICollection '을 가질 수 있습니다. EF Code First는 다 대다 관계가 필요하다는 것을 이해합니다. –
EF 코드는 처음에는 꽤 똑똑하지만 실제로 ShopFacility에는 의견, 수수료 등의 다른 속성이 있으므로 실제로 가져야합니다. 그 얘기는하지 않겠다. 어쨌든 감사합니다! –