我正在使用LINQ to SQL來處理項目中的服務。我涉及三個實體:PCode
是PurchaseOrder
的財產,以及與User
的M:N。檢查單個元素是否在LINQ中的列表中,當首先提供單個元素時
PCode (M:N) User
PCode (1:M) PurchaseOrder
該服務爲PurchaseOrder
,因此正在查詢表。因此,使用.Where()
需要p => p.PCode
開始使用該值。我知道.Contains()
和其他類似的命令,但它們都要求列表先出現,而我不能用這種查詢來完成。我最終需要檢查特定PurchaseOrder
中的PCodeId
是否在與當前用戶關聯的PCodeId
列表中。我如何在LINQ to SQL中過濾這種方式?我覺得這很簡單,我無法弄清楚。
簡體User
類:
public partial class User
{
public virtual int Id { get; set; }
public virtual ICollection<PCode> PCodes { get; set; }
}
PCode
:
public partial class PCode
{
public virtual int Id { get; set; }
public virtual ICollection<User> Users { get; set; }
}
PurchaseOrder
:
public partial class PurchaseOrder
{
public virtual int Id { get; set; }
public virtual int PCodeId { get; set; }
}
查詢的起點。:
// list to be searched can either be passed into the function
// or retrieved via navigation property when the query runs, either works
var query = _poRepository.Table;
if (condition)
// query = query.Where(?);
// query = query.Where(p => p.PCode ... ?);
你想要什麼? –
@RobertMcKee剛纔在問題中澄清說,對不起。我最終需要檢查特定'PurchaseOrder'中的'PCodeId'是否在與當前用戶關聯的'PCodeId'列表中。 – vaindil