2012-06-17 2 views
2

나는 아래엔티티 프레임 워크 데이터 모델링 모범 사례

public abstract class Entity 
{ 
    public int Id { get; set; } 
} 

public class User : Entity 
{ 
    public ICollection<Product> Products { get; set; } 
} 

public class Warehouse : Entity 
{ 
    public ICollection<Product> Products { get; set; } 
} 

public class Product : Entity 
{ 
    public Warehouse Warehouse { get; set; } 

    public User User { get; set; } 
} 

같은 엔티티 구조를 가지고있다. 그래서 Entity 프레임 워크는 Product 테이블 위에 2 개의 외래 키를 넣을 수 있습니다.

우리는 또한 새로운 entitties을 소개하지만, 더 나은 또는 아닌지 확인하지 않고 먼저 디자인이 간단 보면

public class User : Entity 
{ 
    public ICollection<UserProduct> Products { get; set; } 
} 

public class Warehouse : Entity 
{ 
    public ICollection<WarehouseProduct> Products { get; set; } 
} 

public class Product : Entity 
{ 

} 

public class WarehouseProduct : Entity 
{ 
    public Product Product { get; set; } 
    public Warehouse Warehouse { get; set; } 
} 

public class UserProduct : Entity 
{ 
    public Product Product { get; set; } 
    public User user { get; set; } 
} 

아래 같은 다른 엔티티 모델링의 비트에 의해 비슷한 구조를 달성 할 수있다.

나는 어느 것이 가장 좋고 어떤 우화가 다른 것보다 더 좋게 보이는지 찾으려고합니다.

public abstract class Entity 
{ 
    public int Id { get; set; } 
} 

public class Product : Entity 
{ 

} 

public class Warehouse : Product 
{ 
    /* all product fields are available */ 
} 

public class User : Product 
{ 
    /* all product fields are available */ 
} 

이이 => "CodeFirst보기"내 관점에서 더 건조 :

답변

관련 문제