2014-02-19 89 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