Правильный способ сопоставления отношений IS-A в C # - PullRequest
0 голосов
/ 19 марта 2012

Итак, давайте представим простые отношения 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 Ответ

1 голос
/ 19 марта 2012

Существует несколько шаблонов проектирования , включающих отношения IS-A, и, как правило, это именно то, для чего предназначено наследование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...