在 C# 中映射 IS-A 关系的正确方法
Posted
技术标签:
【中文标题】在 C# 中映射 IS-A 关系的正确方法【英文标题】:Correct way to map IS-A Relationships in C# 【发布时间】:2012-03-19 11:46:50 【问题描述】:让我们想象一个简单的 IS-A 关系,如下例所示:
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)
)
当我从数据库映射实体时,我应该使它们成为单独且唯一的对象,还是应该从抽象实体扩展具体类?
例如:
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】:有几个design patterns 涉及IS-A 关系,通常这正是继承的用途。
【讨论】:
以上是关于在 C# 中映射 IS-A 关系的正确方法的主要内容,如果未能解决你的问题,请参考以下文章