Ich verwende LINQ to SQL für eine .NET MVC-Anwendung.Übergeben Sie den Namen der Eigenschaft als String in die Methode .NET.
In meinem db habe ich eine Reihe von Spalten, die "Y" oder "N" -Werte in ihnen haben.
Ich versuche, ein Allzweck-Methode zu schreiben, die alle Datensätze in der db zurück, wo columnName == 'Y'
Bisher habe ich diese
public IQueryable<Approved> ReturnRecordsByObjectiveFlag(string columnName)
{
return from approved in db.Approved
where approved.GetType().GetProperties().Where(x => x.Name.Equals(columnName)).Equals("Y")
select approved;
}
Aber das gibt mir diesen Fehler haben
Member access 'System.String Name' of 'System.Reflection.MemberInfo' not legal on type 'System.Reflection.PropertyInfo[].
Irgendeine Idee, wo ich vielleicht falsch liege?
Vielen Dank.
Was die Art der 'approved' ist? – abatishchev
Nicht feste und möglicherweise große Mengen von Spaltennamen. Es ist Enterprisey. – MrBliz
Die Reflektion funktioniert nicht unter Linq2SQL. Sie müssen einen Ausdruck konstruieren. – leppie