Hola,expresión LINQ miembro de obtener el nombre de columna
estoy utilizando LINQ y EF con C# 4.0. He arrastrado la tabla ELMAH básica a EF (construida y guardada muchas veces). Todo está funcionando como uno esperaría.
Pero he tratado de ser demasiado ambicioso y necesito un poco de ayuda. Estoy tratando de obtener el nombre de la Columna de una expresión que se transmite como una variable.
Lo que yo quiero es éste:
Pass: X => x.ErrorId
y obtener: "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.
}
Gracias por su ayuda! Dan.
Así que lo que busca es determinar el nombre de columna en una expresión potencialmente más complicado que simplemente 'x. ColumnName'? – user7116
intente la depuración y ponga 'property.Body como MemberExpression' en el reloj, una vez que golpee el' ErrorId' puede ver cómo extraerlo – oleksii
@sixlettervariables correcta. –