我有一个Users
和一个Shipments
表。 Shipments
表具有属性Received
。我想编写代码以使用linq获取所有已收到其所有货件(Users
)的所有received == true
。
[Users
表
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool NeedsFilament { get; set; }
public ICollection<Shipment> Shipments { get; set; }
Shipments
表
public Guid Id { get; set; }
public int Quantity { get; set; }
public DateTime DateShipped { get; set; }
public bool Recieved { get; set; }
public Guid UserId { get; set; }
public User User { get; set; }
[到目前为止,我在SQL查询中所做的不算Received
中的Shipments
道具,而只是获得了区别(这是错误的)
SELECT DISTINCT
[FirstName]
,[LastName]
,[Username]
,[Address]
,[LatestShippedDate]
,[PrinterActive]
,[ProductionDate]
,[ShippedQuantity]
,[Email]
,[PhoneNumber]
,[NeedsFilament]
,[FilamentTrackingNumber]
,[SentFilamentDate]
,[LatestShippedQuantity]
FROM
[dbo].[Users]
LEFT JOIN
Shipments ON Shipments.UserId = Users.Id
WHERE
Shipments.Recieved = 1
AND Users.NeedsFilament = 1
Hello @ Pt4r,下面的Linq语句将完成您想要的操作,下面的行解析users_table并比较两个表的每个元素,并保留那些语句返回true的元素
var newUserTbl = users_table.Where(user=>Shipments.UserId==user.id && Shipments.Recieved).ToList();