2011-11-16 11 views
0

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ストレージ= DB Entity Design Existing

いくつかの例を見ました:彼らはコースを行っているところhttp://i.msdn.microsoft.com/dynimg/IC315206.gifは - > OnlineCourseとOnsiteCourseはそれのためのC#の層を見つけるcouldntの。

どのように私はEFコードの最初のアプローチでこれを解決するかについての任意のアイデアがあります。

親切です Vinay。

答えて

1

以下は、テーブルヘッダーを宣言するだけで問題を解決します。

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

私はこの問題を回避ウェイ

抽象クラスを削除し、それをエンティティを行い、その後、2つのエンティティのthrestのために1つのマッピンに1を使用しています。

しかし、ストレージが解決されたにもかかわらず、作成するタイプの問題は解決されません。あなたは歩き回るリストを得ることができません。

は教祖がこれを説明して、このリンクが見つかりました:

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

をしかし、私はそれをPOCOをどのように行うのですか。コードの最初のアプローチですか? アイデアを歓迎します。