Linq查询引用实体

时间:2011-05-16 17:41:01

标签: linq

我如何引用实体?我知道这一行

if(!db.users.any(u => u.customer =="mike")

(db.users)引用users表..所以现在我需要引用.cs中的iqueryable

public IQueryable<Address_List_NEW> GetAddress_List_NEWs(string Customer)
{ 
    return this.DataContext.Address_List_NEWs;
}  

为什么这不起作用?

if(!Address_List_NEW.any(u => u.Customer == "mike")

2 个答案:

答案 0 :(得分:0)

您应该返回强类型IQueryable<T>,否则Linq不知道您正在访问的对象的属性:

public IQueryable<Address_List_NEW> GetAddress_List_NEWs() 
{ 
   return this.DataContext.Address_List_NEWs; 
}

请记住,您没有使用传入的参数,因此我删除了它 - 这是您的意图吗? (现在这种方法没有做太多的事情)

然后你应该能够做到:

var adressList = GetAddress_List_NEWs();
if(!adressList.Any(u => u.Customer == "mike"))
...

答案 1 :(得分:0)

Address_List_NEW是一个类的名称,而不是IQueryable<Address_List_NEW>,因此您无法调用Any

根据你的功能签名,看起来你想写这个:

public bool CustomerHasAddress(string Customer) 
{ 
   return !this.DataContext.Address_List_NEWs.Any(u => u.Customer == Customer); 
}

或者可能是这样的:

public IQueryable<Address_List_NEW> GetAddress_List_NEWsForCustomer(string Customer) 
{ 
   return this.DataContext.Address_List_NEWs.Where(u => u.Customer == Customer); 
}

然后你可以拨打GetAddress_List_NEWsForCustomer("mike").Any()

甚至是这样的事情:

public IQueryable<Address_List_NEW> GetAddress_List_NEWs() 
{ 
   return this.DataContext.Address_List_NEWs; 
}

您可以从中拨打GetAddress_List_NEWs.Any(u => u.Customer == "mike")