2012-03-19 48 views
-1

讓我們想象一個簡單的IS-A這樣的例子關係:映射正確的方法是-A在C#中關係

create table EntityAbstract(
    IDEntityAbstract int identity primary key, 
    Name nvarchar(50) not null, 
) 


create table OneOfConcreteEntity(
    EntityAbstract int, 
    constraint PK_Image primary key (EntityAbstract), 
    constraint FK_Image foreign key (EntityAbstract) references EntityAbstract(IDEntityAbstract) 
) 

當我映射從數據庫中實體我應該讓他們獨立和獨特對象還是我應該讓抽象實體擴展的具體類?

e.g:

public class EntityAbstract 
    { 
     public int EntityAbstractID { get; set; } 
     public string Name { get; set; } 
     public EntityAbstract(int entityID, string name) 
     { 
      this.EntityAbstractID = entityID; 
      this.Name = name; 
     } 
    } 

    public class OneOfConcreatEntity : EntityAbstract 
    { 
     public OneOfConcreatEntity(int entityID, string name) : base(entityID, name){ } 
    } 

什麼是最好的選擇嗎?考慮多個具體實體和更復雜的實體。

回答

1

有幾個涉及IS-A關係的design patterns,通常這正是繼承的原因。