Entity Frameworkを使用してASP.NET MVCアプリケーションを作成しています。私の要件は、いくつかのデフォルト値をシード機能を使ってテーブルに挿入することです。Entity Frameworkのシード中に外部キーを渡す方法
値間に関係がない場合は正常に実行されました。しかし、Entity Frameworkでシードを使用して外部キー参照を挿入することはできません。私はロールとユーザーテーブルのデフォルトに合格している上記のコードで
protected override void Seed(VBlog.DbLayer.DbInitializer context)
{
//this(AddOrUpdate) will check first is there is alrady record exists or not in the database.
context.Roleses.AddOrUpdate(x => x.RoleName,
// master data
new Roles { RoleName = "Admin", Weightage = 3 },
new Roles { RoleName = "User", Weightage = 1 }
);
//adding the mast data for user table
context.Userses.AddOrUpdate(x=>x.EmailId,
new Users()
{
FirstName = "vir",
LastName = "acker",
EmailId = "[email protected]",
Password = password,
Gender = "Male",
Islocked = "false",
CreatedDate = DateTime.Now,
**Foreign key for Users table**
}
);
//context.Userses.AddRange(defaultUserDataList);
base.Seed(context);
}
:
これはシード方法です。 1つの列、すなわちRoleId
がUsers
のテーブルに残っています。
Roles
テーブルの主キーをUsers
テーブルの外部キーとして取得するにはどうすればよいですか?
データベースからロールバックを取り出して、そのIDを新しいユーザーに渡す必要があります。 –