1

我对 Entity Framework 很陌生,如果这是一个非常糟糕的问题,我深表歉意,但我找不到对我有意义的解决方案。虽然我的问题很复杂,但我会尽量简化它。假设我有两个模型 Company 和 CompanyAddress。

+--------------------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
+---------------------------------------------------------+

这两个属性在视图中填充并毫无问题地传递给控制器​​。我的问题从现在开始。我应该如何插入这两个实体?

假设我先插入 Company 实体,然后使用 select 语句获取其 primaryKey 并将此值分配给 CompanyAddress 的外键并插入它。但是,这对我来说没有意义,因为我需要再次请求主键。

我应该如何插入我的实体,最好的方法是什么?对不起,很长的问题,谢谢。

4

1 回答 1

2

为 Company 调用 SaveChanges() 后,您便拥有该对象中的 PrimaryKey。将其分配给 CompanyAddress 的外键并再次调用 SaveChanges()。

于 2012-06-30T16:43:41.700 回答