プロジェクトのエンティティフレームワークに戻ってきました。 私のデータベース関係は、ビジネス層だけでなくデータベース上でも適用されます。エンティティフレームワークがDBにレコードを渡します
は、私が作成した新しい子レコードを持つレコードを追加しようとしている外部キー制約を抱えています。
以下は、私のテーブルとコードの簡単な例です。
メインテーブル
- のId INT(PK)
- たchildID整数(FK)
- 名NVARCHAR(50)
子テーブル - イドのINT( pk) - 名前nvarch(50)
private static int addChild(string name)
{
using (var context = new DatabaseEntity())
{
var table = new DBChildTable() { Name = name };
context.DBChildTable.Add(table);
context.SaveChanges();
return table.Id;
}
}
private static int addMain(int childId, string name)
{
using (var context = new DatabaseEntity())
{
var table = new DBMainTable() { Name = name, ChildId = childId };
context.DBMainTable.Add(table);
context.SaveChanges();
return table.Id;
}
}
private static void basiceLogic()
{
int childId = addChild("Child");
addMain(childId, "Main");
}
私は、エンティティフレームワーク6とSQL Serverバックエンドデータベースを使用しています。
私は、コンテキストにコマンドを追加したり、どこかのデータベースに、メモリ内のエンティティフレームワークからレコードを永続化するためにコードを伝えるために必要なことを、覚えています。
助けが必要ですか?
おかげ
何についてのご質問を?共有するコードは機能するはずです。 – lorond
SaveChanges()はコマンドです:) – marius
こんにちは、私は知っています。主な要素を追加するために2番目のメソッドを実行すると、childIdの外部キー制約について文句を言います。しかし、最初の試みからchildIdを使用してメソッドを再度実行すると、それは機能します。 –