sqlsugar Expressionable 根据反射指定的字段 查询
时间: 2023-12-04 13:02:26 浏览: 155
在linq查询中使用反射
可以使用SqlSugar中的Expressionable对象结合反射来指定查询的字段。
首先,使用反射获取查询所需的字段名,然后创建一个Expressionable对象。在Expressionable对象中,可以使用Select和With方法来指定查询的字段。
例如,假设我们有一个名为"User"的实体类,其中包含"Id"、"Name"和"Age"三个属性,我们希望查询"Id"和"Name"这两个字段,可以使用以下代码:
```csharp
// 使用反射获取需要查询的字段名
var properties = typeof(User).GetProperties().Where(p => p.Name == "Id" || p.Name == "Name").Select(p => p.Name).ToArray();
// 创建Expressionable对象并指定查询的字段
var queryable = db.Queryable<User>().Where(u => u.Age > 18).Select(properties).With(SqlWith.NoLock);
```
在上述代码中,使用反射获取了"Id"和"Name"这两个字段的名称,然后创建了一个Expressionable对象,并使用Select方法指定查询的字段,最后使用With方法指定表锁定方式。
这样就可以根据反射指定的字段进行查询了。
阅读全文