2011-05-16 75 views
0

如何引用实体?我知道,在这条线Linq查询引用实体

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

(db.users)是指用户表..所以现在我需要在的.cs

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

引用一个IQueryable为什么这不是工作? ?

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

回答

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")) 
... 
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")