如何在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);