在Entity Framework中,给定2个System.Data.Entity.DbSets,ORDERS和USERS。
注意:ORDERS表中可能有来自USERS表之外的用户的订单。在这种情况下,CreatedUserName可以为空/空
订单与用户之间的关系=>多对一/无
我想在ORDERS中获得所有记录,而在USERS中获得匹配的记录。
以下是我尝试过的方法。只是想检查一下是否可以更有效地完成
var OrderDetails = oContext.Orders
.GroupJoin(
oContext.Users,
order => order.CreatedUserID,
user => user.UserID,
(order, user) => new { Order = order, User = user }
)
.Where(x => new List<int> { 123, 124, 125, 126 ... }.Contains(x.Order.OrderID))
.Select(x => new OrderDetails()
{
OrderID = x.Order.OrderID,
CreatedUserName = x.User.FirstOrDefault().FullName,
.
.
.
});
我更改了原始代码的上下文,但是方法与上面相同。如果订单和用户之间的关系不合理,请忽略。