我对实体框架非常陌生,所以如果它是一个非常糟糕的问题,我很抱歉,但是我找不到对我有意义的解决方案。虽然我的问题很复杂,但我会尽量简化它。假设我有两个模型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
+--------------------------------------------------------------+
如可以看出公司实体可以有一个以上的公司地址。在我的ASP.NET MVC项目中,我也有ViewModel。
+--------------------CompanyCreateViewModel----------------+
| Company company
| CompanyAddress address
+---------------------------------------------------------+
这两个属性在视图中填充并传递给控制器没有问题。我的问题现在开始了。我应该如何插入这两个实体?
比方说,我首先插入公司实体,然后用select语句获取其primaryKey并将此值分配给CompanyAddress的外键并插入它。但是,这对我来说没有意义,因为我需要提供另一个主键请求。
我应该如何插入我的实体,什么是最好的方法?对不起,很长的问题,谢谢。
我不明白你所说的这个陈述“但是,这对我来说没有意义,因为我需要提供另一个主键请求。” - 为什么你认为你需要为同一个主键做出另一个请求键?一旦您为公司调用SaveChanges(),您就会在该对象中拥有PrimaryKey。将其分配给CompanyAddress的外键并再次调用SaveChanges()。 – TheGeekYouNeed
嗯,不知道。正如我所说,我对orm和ef事物非常陌生。无论如何,这解决了我的问题:)请写作答案,我可以接受它。谢谢... –
很高兴帮助:) – TheGeekYouNeed