私の現在のプロジェクト(これは本当に小さいです)では、EFを使用して操作したい3つのテーブル/ POCOエンティティがあります。
表は次のとおりです。
- ステータス(ステータスの詳細を含む)
- StatusStatusType(多対多の関係のために必要です)
- StatusType(タイプごとにステータスをグループ化するために使用されるテーブル)
以下に示すように、データベースとユーザーコードに新しいステータスを作成したいと思います。
//Create new status (POCO) entity
var newStatus = new Status {
StatusId = status.Id,
UserId = user.Id,
Text = status.text,
CreateDate = DateTime.Now
};
// Persist need status to database
using (var db = new demoEntities())
{
db.Statuses.AddObject(newStatus);
db.SaveChanges();
}
このコードは正常に機能しますが、ステータスエンティティのStatusTypeも設定したいと思います。考えられるすべてのステータスタイプは、StatusTypeテーブルにすでに含まれています。新しいステータスを作成したくないのは、参照を作成するだけです。
私は私が次のようなものを使うべきだと考えました:
status.StatusTypes == "new";
更新22-04-201213:31
この例は単純化されており、ソリューション内の複数のプロジェクトにまたがっています。このため、作成セクション内のコード(demoEntitiesなど)を使用したくないのですが、参照する必要のあるステータスのPKはわかっています。