LINQ动态查询
如何动态生成LINQ查询:LINQ动态查询,linq,dynamic,Linq,Dynamic,如何动态生成LINQ查询: int[] IDArray = {55, 36}; public IQueryable<ContactListView> FindAllContacts(int loggedUserID, int[] IDArray) { var result = ( from contact in db.Contacts //Start of dynamic part...
int[] IDArray = {55, 36};
public IQueryable<ContactListView> FindAllContacts(int loggedUserID, int[] IDArray)
{
var result = (
from contact in db.Contacts
//Start of dynamic part...
where
contact.UserID == loggedUserID
foreach (var id in IDArray)
{
where contact.UserID == id
}
// End of dynamic part
orderby contact.ContactID descending
select new ContactListView
{
ContactID = contact.ContactID,
FirstName = contact.FirstName,
LastName = contact.LastName
});
return result;
}
谢谢,
Ile你不能直接使用Contains吗?我假设您想要生成一个包含IN子句的查询。这里有一个例子:
你就不能用它吗?我假设您想要生成一个包含IN子句的查询。这里有一个例子:
您可能需要IDArray.Containscontact.UserID的位置您可能需要IDArray.Containscontact.UserID的位置&&IDArray.Contains id-此范围内不存在该id?你能说得更准确些吗?ThanksIDArray.Contains id应为IDArray.Contains contact.UserID&&IDArray.Contains id-此范围中不存在该id?你能说得更准确些吗?ThanksIDArray.Contains id应为IDArray.Contains contact.UserID
int[] IDArray = {55, 36};
public IQueryable<ContactListView> FindAllContacts(int loggedUserID, int[] IDArray)
{
var result = (
from contact in db.Contacts
where contact.UserID == loggedUserID
&& IDArray.Contains( contact.UserID )
orderby contact.ContactID descending
select new ContactListView
{
ContactID = contact.ContactID,
FirstName = contact.FirstName,
LastName = contact.LastName
});
return result;
}