0
람다 식의 널 (NULL) 값 :추출 속성 이름과 내가 람다 표현식을 사용하여 속성 이름과 값을 추출 할 필요가있어
public MyMapping(Expression<Func<TEntity, int?>> expression)
{
this.expression = expression;
if (this.expression != null)
{
if (expression.Body is MemberExpression)
{
this.expressionMemberName = ((MemberExpression)expression.Body).Member.Name;
}
else
{
var op = ((UnaryExpression)expression.Body).Operand;
this.expressionMemberName = ((MemberExpression)op).Member.Name;
}
}
}
다음과 같이 표현은 설정입니다 :
this.MyProperty(m => m.NumberOfDays.Value);
다음을 원합니다 :
var propertyName = this.expressionMemberName;
var value = this.expression.Compile()(instance);
내 속성이 null 가능하므로 예외가 발생합니다. 표현식을 컴파일하십시오. 또한 propertyName은 NumberOfDays 대신 "Value"로 설정됩니다.
이 데이터를 가져 와서 표현식을 컴파일하도록하려면 어떻게해야합니까?
ok ... 몇 시간 후에 문제가 발견되었습니다. 필드가 nullable이므로 .Value를 생략 할 수 있습니다. 매핑이 읽어야합니다. this.MyProperty (m => m.NumberOfDays); –
그런 다음 대답으로 게시 한 다음 수락해야합니다. – svick