2012-03-09 4 views
0

私のシナリオでお役に立てれば幸いです。私は2つのdbテーブルを持っています。最初のものはステータスと呼ばれ、変更されません。 「ID」と「待機中」、「処理中」、「処理中」の値を含む2つの列があります。Fluent Nhibernateで列挙された同等のdbテーブルを参照するFKでテーブル行を挿入するには

2番目の表はアクティビティと呼ばれ、アクティビティのステータスを制限するためにFKを使用します。

流暢NHibernateはを使用

iはTable.Activityに新しい行を挿入したい場合、私は、例えば、エンティティ(テーブル)エンティティアクティビティの「状態」と関連付けられたマッピングを参照する必要があります:

public virtual Status Status { get; set; } // Activity Entity Class 

References(a => a.Status); // Activity Mapping Class 

そして、私がそれをしたら、新しいセッションをどのように保存するのですか?

session.Save(new Activity 
{ 
    Name = "Activity A1DD", 
    Status = new Staus { ID = 1 } // But can't do that cause its expecting an object 
} 

FKを整数として表現し、このテーブルを表すenumクラスを作成し、流暢に使用することについての心配はありませんか?

おかげ

ギガバイト

答えて

0

いずれか

session.Save(new Activity 
{ 
    Name = "Activity A1DD", 
    Status = session.Get<Status>(1) 
}); 

既存のステータスを使用

session.Save(new Activity 
{ 
    Name = "Activity A1DD", 
    Status = session.Load<Status>(1) 
}); 
(それをロードせずに)指定されたIDを持つデータベース内の既存のステータスを使用することを教え

ステータステーブル全体を切り捨て、代わりに列挙型を使用します(ステータスがhaプロパティ/ビヘイビアなし)

session.Save(new Activity 
{ 
    Name = "Activity A1DD", 
    Status = Status.InProcess 
}); 
関連する問題