属性 当我想构建表达式时没有为类型定义
Property is not defined for type when i want to build expression
我想构建一个表达式来通过 EF Core 2.1 查询我的数据库
我有我的 Data
class 代表来自我的 table 的实体:
public class Data
{
public string Id1 {get;set;}
public string Id2 {get;set;}
}
然后我想建立一些表达:
var parameter = Expression.Parameter(typeof(Data), "x");
var memberId1 = Expression.Field(parameter, nameof(Data.Id1));
var memberId2 = Expression.Field(parameter, nameof(Data.Id2));
当我想从 Id1
制作 Field
时,我得到了这个例外:
System.ArgumentException: Instance field 'Id1' is not defined for type 'Entities.Data'
at System.Linq.Expressions.Expression.Field(Expression expression, String fieldName)
如何从我的 Data
class 获取对太字段的访问权限?
我的Id1
和Id2
不是Field而是Property
。现在有效了:
var parameter = Expression.Parameter(typeof(Data), "x");
var memberId1 = Expression.Property(parameter, nameof(Data.Id1));
var memberId2 = Expression.Property(parameter, nameof(Data.Id2));
我想构建一个表达式来通过 EF Core 2.1 查询我的数据库
我有我的 Data
class 代表来自我的 table 的实体:
public class Data
{
public string Id1 {get;set;}
public string Id2 {get;set;}
}
然后我想建立一些表达:
var parameter = Expression.Parameter(typeof(Data), "x");
var memberId1 = Expression.Field(parameter, nameof(Data.Id1));
var memberId2 = Expression.Field(parameter, nameof(Data.Id2));
当我想从 Id1
制作 Field
时,我得到了这个例外:
System.ArgumentException: Instance field 'Id1' is not defined for type 'Entities.Data' at System.Linq.Expressions.Expression.Field(Expression expression, String fieldName)
如何从我的 Data
class 获取对太字段的访问权限?
我的Id1
和Id2
不是Field而是Property
。现在有效了:
var parameter = Expression.Parameter(typeof(Data), "x");
var memberId1 = Expression.Property(parameter, nameof(Data.Id1));
var memberId2 = Expression.Property(parameter, nameof(Data.Id2));