2014-02-19 121 views
1

我正在使用ServiceStack構建服務並使用OrmLite與數據庫進行通信。我發現下面的例子中ServiceStack OrmLite DocumentionServiceStack Ormlite Select Expression

db.Select<Author>(q => q.Earnings <= 50); 

OR

db.Select<Author>(q => q.Name.StartsWith("A")); 

我與我的類的用戶嘗試,但無法找到方法的重載「選擇」,讓我做提到的東西。在我的情況下,q是一個linq表達式,不是泛型類型的實例/引用(在我的情況下是用戶)。以下是我的代碼:

db.Select<User>(q => q.Where(x => x.LastName == "XYZ")); 

,我想它是這樣的:

db.Select<User>(q => q.LastName == "XYZ"); 

請讓我知道這是我期待的一個擴展方法以及如何使用?

回答

0

是被選擇的類型是表看,e.g:

db.Select<Author>(...) //Author 
db.Select<User>(...) //User 

查看這個早期問題的答案爲selecting a subset of data with OrmLite

+0

我知道類的類型將映射到DB中的表。其實我想獲取列表意味着類型用戶的列表。我不想獲取用戶的子集。爲什麼我不能簡單地寫db.Select (q => q.LastName ==「XYZ」);獲取類型User的列表? – Haider

+0

@Haider你可以做到這一點。 – mythz

+0

但是當我寫這個語句時,intellisense說q是linq表達式的一個實例,而不是User類型的一個實例。所以我只能寫db.Select (q => q.Where(x => x.LastName ==「XYZ」))使用q作爲linq表達式。 – Haider