我想知道是否有可能获得明确列名的值?
例如SELECT NAME FROM PERSON;
string NAME; <--- Column name
string fundPerson;
fundPerson = context.PERSON.Where(a => a... == NAME);
问题是列名可以更改,它并不总是“NAME”列。 因此,我需要一个解决方案,我可以动态地将列名传递给查询。
答案 0 :(得分:2)
您希望C#中的源代码创建一个linq查询,该查询在Linq to SQL或Linq to Entity Framework下编译为SELECT NAME FROM PERSON
?
IEnumerable<string> names = from x in context.PERSONS
select x.Name;
OR
IEnumerable<string> names = context.PERSONS.Select(x => x.Name);
在Monad的说法中,您需要对Name属性进行投影。
编辑:你想动态说明哪一列?
string columnName = "Name";
ParameterExpression personExpression = Expression.Parameter(typeof(Person), "p");
Expression<Func<Person, string>> column = Expression.Lambda<Func<Person, string>>(Expression.PropertyOrField(personExpression, columnName), personExpression);
IEnumerable<string> things = context.PERSONS.Select(column);
答案 1 :(得分:0)
试试这个
fundPerson = context.PERSON.Where(a=>a... == NAME).Select(a=>a.NAME).SingleOrDefault();
答案 2 :(得分:0)
你的问题有点误导..你是否经过一系列名称,比如运行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);