Несколько таблиц, Абстрактный класс, Типы сущностей - PullRequest
0 голосов
/ 17 ноября 2011

CS.

    public abstract  class Customer
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool IsCorporate { get; set; }
    }

    public class PrivateCustomer: Customer
    {
        public string Address { get; set; }
        public DateTime DateOfContract { get; set; }
        public int QuoteAmmount { get; set; }
        public string PromotionCode { get; set; }
    }

    public class BusinesCustomer: Customer
    {
        public string BusinessName { get; set; }
        public string BusinessAddress { get; set; }
        public TypeofContract ContractType { get; set; }
        public DateTime ContractStart { get; set; }
        public DateTime ContractEnd { get; set; }
    }

    public enum TypeofContract
    {
        Hourly =1,
        Daily = 2,
        Weekly = 3

    }

БД Хранилище = DB Entity Design Existing

Видел пример: http://i.msdn.microsoft.com/dynimg/IC315206.gif, где они прошли курс -> OnlineCourse и OnsiteCourse не смогли найти для него слой c #.

любой имеет представление о том, как мне решить эту проблему в первом подходе к EF-коду.

С уважением Вини.

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Следующее решает проблему, просто объявив заголовок таблицы.

public abstract  class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsCorporate { get; set; }
}

[Table("PrivateCustomer")]
public class PrivateCustomer: Customer
{
    public string Address { get; set; }
    public DateTime DateOfContract { get; set; }
    public int QuoteAmmount { get; set; }
    public string PromotionCode { get; set; }
}

[Table("BusinesCustomer")]
public class BusinesCustomer: Customer
{
    public string BusinessName { get; set; }
    public string BusinessAddress { get; set; }
    public TypeofContract ContractType { get; set; }
    public DateTime ContractStart { get; set; }
    public DateTime ContractEnd { get; set; }
}

public enum TypeofContract
{
    Hourly =1,
    Daily = 2,
    Weekly = 3

}
0 голосов
/ 22 ноября 2011

Способ, которым я могу обойти это, -

Удалите абстрактный класс и сделайте его сущностью, а затем используйте однозначное сопоставление для остатка двух сущностей.

, но хранилище быловсе еще решена проблема того, какого типа он создает.Вы не можете получить список для просмотра.

нашел эту ссылку, где гуру объясняет это:

http://www.codeproject.com/Articles/100109/Mixing-Table-Per-Hierarchy-and-Entity-Splitting.aspx

но как мне это сделать POCO.Код первый подход?Любые идеи приветствуются.

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