1

私はEntity Frameworkに非常に慣れていないので、非常に悪い質問であれば申し訳ありませんが、私にとって意味のある解決策を見つけることができませんでした. 私の問題は複雑ですが、単純化しようと思います。Company と CompanyAddress の 2 つのモデルがあるとします。

+--------------------Company---------------------------------------+
| int CompanyId
| string CompanyName
|
| virtual <ICollection>CompanyAddress address // Navigation Property
+-------------------------------------------------------------------+

と、

+--------------------CompanyAddress---------------------------+
| int CompanyAddressId
| string Address
|
| int CompanyAddressId           // Foreign Key to Address Table
| virtual CompanyAddress address // Related Navigation Property
+--------------------------------------------------------------+

ご覧のとおり、Company エンティティは複数の CompanyAddress を持つことができます。私の ASP.NET MVC プロジェクトには、ViewModel もあります。

+--------------------CompanyCreateViewModel----------------+
| Company company
| CompanyAddress address
+---------------------------------------------------------+

これら 2 つのプロパティはビューで入力され、問題なくコントローラーに渡されます。私にとっての問題は今始まります。これら 2 つのエンティティを挿入するにはどうすればよいですか?

select ステートメントで primaryKey を取得するよりもまず Company エンティティを挿入し、この値を CompanyAddress の外部キーに割り当てて挿入するとします。ただし、主キーをもう一度要求する必要があるため、これは意味がありません。

エンティティを挿入するにはどうすればよいですか? 最善の方法は何ですか? 長い質問で申し訳ありませんが、ありがとうございます。

4

1 に答える 1

2

Company に対して SaveChanges() を呼び出すと、そのオブジェクトに PrimaryKey が含まれます。これを CompanyAddress の外部キーに割り当て、SaveChanges() を再度呼び出します。

于 2012-06-30T16:43:41.700 に答える