0
엔티티 개체를 직접 생성하지 못하게해야하는 시나리오에 직면하고 있습니다.Entity Framework 직접 POCO 생성 방지
저는 코드 우선을 사용하고 있습니다. 나는 어딘가에 내가 객체를 생성 할 수 있어야만하는 메서드를 사용하고 싶습니다. 이것에 대해 일반적으로 사용되는 관행이 있습니까?
엔티티 개체를 직접 생성하지 못하게해야하는 시나리오에 직면하고 있습니다.Entity Framework 직접 POCO 생성 방지
저는 코드 우선을 사용하고 있습니다. 나는 어딘가에 내가 객체를 생성 할 수 있어야만하는 메서드를 사용하고 싶습니다. 이것에 대해 일반적으로 사용되는 관행이 있습니까?
EF는 개인/보호 생성자가있는 엔티티에서 작동 할 수 있습니다.
public class MyEntity
{
protected MyEntity() { }
public int Id { get; set; }
public string Name { get; set; }
}
public class MyContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
}
그런 다음 컴파일 오류가 발생합니다
new MyEntity()
로 엔티티를 생성 :
그래서이 샘플 문맥을 할 수 있습니다.
그러나 EF를 통해 여전히 DbSet.CreatemyContext.MyEntities.Create();
인 상태로 생성 할 수 있으며 MyEntity
의 모든 작업은 예를 들어 작동합니다. 쿼리 및 업데이트 등.
물론 당신은 또한 객체 생성을 관리 MyEntity
에 정적 팩토리 메소드를 가질 수
public class MyEntity
{
//...
public static MyEntity MyCreate()
{
return new MyEntity();
}
}