你好,
我在 C# 4.0 中使用 LINQ 和 EF。我已将基本的 ELMAH 表拖到 EF 中(多次构建和保存)。一切都按预期工作。
但是试图过于雄心勃勃并且需要一点帮助 - 我试图从作为变量传递的表达式中获取列名。
我想要的是这样的:
传入:x=>x.ErrorId
并得到:“ErrorId”
public void GetColumnName(Expression<Func<T, object>> property)
{
// The parameter passed in x=>x.Message
// Message works fine (probably because its a simple string) using:
string columnName = (property.Body as MemberExpression).Member.Name;
// But if I attempt to use the Guid or the date field then it
// is passed in as x => Convert(x.TimeUtc)
// As a result the above code generates a NullReference exception
// i.e. {"Object reference not set to an instance of an object."}
// What is the correct code here to extract the column name generically?
// Ideally in a way that won't bite me again in the future.
}
感谢您的帮助!担。