实体框架' Bulk'找

时间:2016-06-02 22:52:35

标签: entity-framework

假设我有一个订单商品表:

CREATE TABLE OrderItem
(
    orderId INT,
    orderItemId INT,
    ...
    CONSTRAINT orderItem_pk PRIMARY KEY (orderId, orderItemId));

在我的dbContext中,我有一个相应的OrderItem实体。

现在,在我的应用程序中,我有一组分离的OrderItem实体:

var orderItems = new List<OrderItem>(){...};

我想确定数据库中已存在这些orderItems中的哪一个。如何通过一次数据库检查这一点?请注意,实体的密钥是复合的。

(我的最终目标是&#39; upsert&#39; orderItems

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助

city.user_city.all()  
# Bad: because this is a QuerySet of Profiles
# Better: related_name = 'users'

var orderItems = new List<OrderItem>(){...}; var inDatabase = db.Orders.Where(o => orderItems.Contains(o.OrderId)).ToList(); 将被翻译为Contains语句,该列表(orderItems)将附加到您的查询中,导致只有1次数据库访问。

要使复合材料起作用,你可以试试这样的东西

IN