Ef 4.1 코드의 첫 번째 구현에 몇 가지 문제가 있습니다.EF, 코드 우선, WCF => 빈 수집 문제
public class Foo()
{
public Foo()
{
Id = Guid.NewGuid();
Bars = new Collection<Bar>();
}
public Guid Id { get; set; }
public string Name { get; set; }
public virtual ICollection Bars { get; set; }
}
public class Bar()
{
public Bar()
{
Id = Guid.NewGuid();
}
public Guid Id { get; set; }
public string Name { get; set; }
public virtual Foo Foo { get; set;}
}
public class MyContext : DbContext
{
public MyContext()
{
Configuration.ProxyCreationEnabled = false;
}
public DbSet<Foo> Foos { get; set; }
public DbSet<Bar> Bars { get; set; }
}
위의 wcf 서비스를 배치하면 빈 모음 만 반환됩니다. ProxyCreationEnabled를 켜면 컬렉션이 채워지지만 EF 프록시 생성 때문에 wcf 예외 및 연결이 끊어집니다.
제안 사항?
답장을 보내 주셔서 감사합니다. 당신은 "EF는 결코 관련 객체를로드하지 않습니다"라고 말합니다. 위의 예 에서처럼 ProxyCreationEnabled를 켜면 관련 객체가 실제로로드됩니다. 코드 첫 번째 프레임 워크의 기능이라고 생각합니다. 여러분의 솔루션이 제대로 작동한다고해도 올바른 해결책은 아니라고 생각합니다. – HaakonL
먼저 코드의 기능이 아닙니다. 그것은 게으른 로딩이라고 부르며 다시는 그 자체 없이는 트리거하지 않습니다. 개발 한 코드가 탐색 속성에 처음 액세스하면 트리거됩니다. 귀하의 경우에는 WCF 서비스에 의해 수행되는 직렬화가 될 것입니다. –
Monkeyboy 11, Ladislav 66k. 말할 필요도없이 Ladislav는 꽤 정확합니다. – Stimul8d