web-dev-qa-db-ja.com

EF 4.3で複雑なキーを持つAddOrUpdateでデータをシードする方法

開発データベースにテストデータをシードしようとしています。

私はcontext.People.AddOrUpdate(p => p.Id, people));を使用して大成功しました。

シードする必要がある別のテーブルがありますが、このテーブルには主キーがわかりません。

たとえば、一致する姓名に基づいてAddOrUpdateを実行します。

Expressionを正しく記述する方法がわかりません。

context.People.AddOrUpdate(p => p.FirstName && p.LastName, people);

明らかに間違っていますが、私が探している解決策を伝えることを願っています。

101
Keith Sirmons

これを試して:

context.People.AddOrUpdate(p => new { p.FirstName, p.LastName }, people);
199
Ladislav Mrnka

Only primitive types or enumeration types are supported in this context.ナビゲーションプロパティを使用するため-エンティティに外部キープロパティを直接追加することを検討し(おそらくゲッターのみ)、Ladislav Mrnka提案として使用します。

1
lukyer