假设我有一个订单商品表:
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
。
答案 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