2009-07-25 13 views
0

メインエンティティクラスにマッピングするデータベースがデータベースにあります。テーブルには、他の属性テーブルへの外部キー値を保持するカラムがいくつかあります。外部キー属性テーブルをビジネスエンティティにマップする方法

これらをビジネスクラスにマップするにはどうすればよいですか?すべての属性テーブルに対して新しいクラスを作成し、プライマリクラスにこれらをプロパティとして保持させますか?

答えて

1

メインテーブルと属性テーブルの関係が1:1の場合(メインテーブル内の特定のレコードの属性テーブルにアクティブレコードが1つのみ存在する場合)、属性テーブルのすべての属性s)。

メインテーブルと属性テーブルの関係が1:nの場合、属性テーブルごとに別のクラス(メインエンティティクラスにネストされている可能性があります)があります。メインエンティティクラスには、各属性テーブルのプロパティがあります。これは、List<AttributeType>のリストです(メインテーブル内の特定のレコードの属性テーブルには多くのレコードが存在する可能性があるため)。

0

もう一つの強いタイプの関係のプロパティを持つメインの「エンティティ」クラスが正しいと思います。

ProductテーブルとCategoryテーブルがあり、Categoryテーブルの主キーへの外部キーを含むProductテーブルがあるとします。あなたのコードでは、Productクラスは整数 "CategoryID"プロパティを取得しません - Category型への参照である "Category"プロパティを取得します。このルートを行く

class Product 
{ 
    public int ProductID { get; set; } 
    public string Name { get; set; } 
    public Category Category { get; set;} 
} 

class Category 
{ 
    public int CategoryID { get; set; } 
    public string Name { get; set; } 
} 

は、標準クラスを使用して、ビジネス・ロジックをコーディングして、あなたの永続化層(EF、NHibernateは、など)は、データベースとの対話に対処し、テーブル間の外部キーを取り扱うことができます。

関連する問題