如何在c#/ Linq中获取确定列名的值?
我想知道是否有可能获得明确的列名称的值? 例如, SELECT NAME FROM PERSON;
string NAME; a... == NAME);
问题是列名称可能会更改,它并不总是“NAME”列。 因此,我需要一个解决方案,我可以动态地将列名称传递给查询。
您希望C#中的源代码创建一个linq查询,该查询在Linq to SQL或Linq to Entity Framework下编译为SELECT NAME FROM PERSON
?
IEnumerable names = from x in context.PERSONS select x.Name;
要么
IEnumerable names = context.PERSONS.Select(x => x.Name);
在Monad的说法中,您需要在Name属性上进行投影。
编辑:你想动态说明哪一列?
string columnName = "Name"; ParameterExpression personExpression = Expression.Parameter(typeof(Person), "p"); Expression> column = Expression.Lambda>(Expression.PropertyOrField(personExpression, columnName), personExpression); IEnumerable things = context.PERSONS.Select(column);
试试这个
fundPerson = context.PERSON.Where(a=>a... == NAME).Select(a=>a.NAME).SingleOrDefault();
你的问题有点误导..你是否经过一系列名称,比如运行SQL“SELECT Name FROM Person”会得到什么?
如果是这样,使用Linq-to-sql语法:
var people = from p in context.PERSON select a.NAME;
如果您正在尝试根据NAME字符串查找特定人员?
string name = "barry"; var person = from p in context.PERSON select a where a.NAME.Contains(name);