gpt4 book ai didi

entity-framework - Entity Framework - 如何在不首先检索外表行的情况下插入带有外键的表

转载 作者:行者123 更新时间:2023-12-04 08:32:36 27 4
gpt4 key购买 nike

我很难找到这个问题的确切答案,所以如果这是多余的,我深表歉意。

所以我定义了 3 个表:

人 :PersonId, FirstName, LastName

公司:公司 ID、公司名称

订单:OrderId、PersonId、CompanyId

在Order 表上,PersonId 和CompanyId 列上定义了一个外键,因此,我的EF 生成的Order 实体类具有Person(而非PersonId)和Company 类型的导航属性。

因此,要插入到 Order 表中,我首先需要查询 person 和 company 表以获取 person 和 company 实体。然后我可以使用 Person 和 Company 实体构造 Order 对象并将其保存到数据库中。

在我的场景中,我被传递了一个 PersonId 和 CompanyId。

在经典 SQL 中,我只会执行 INSERT INTO Order Set (CompanyId, PersonId) - 1 个数据库调用。但是使用 EF,我必须进行 3 次 db 调用。这似乎有点矫枉过正。

有没有办法解决?

PS - 我正在使用 EF 6。我知道我可以生成一个表达式并使其单一调用..但这仍然会产生两个子选择。

最佳答案

除了导航属性之外,您还可以只包含外键属性,然后使用您拥有的 id 设置它们。如果您这样做,就不必为了设置关系而去数据库获取相关实体。

关于entity-framework - Entity Framework - 如何在不首先检索外表行的情况下插入带有外键的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22697931/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com