2011-05-16 72 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")