我想知道是否可以获取定列名的值?示例SELECT NAME FROM PERSON;
string NAME; <--- Column name
string fundPerson;
fundPerson = context.PERSON.Where(a => a... == NAME);
问题是列名称可以更改,它并不总是"NAME"列。因此,我需要一个解决方案,我可以在其中动态地将列名传递给查询。
您想在 C# 中的源代码中创建一个 linq 查询,该查询在 Linq to SQL 或 Linq to Entity Framework 下编译为SELECT NAME FROM PERSON
?
IEnumerable<string> names = from x in context.PERSONS
select x.Name;
或
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);
试试这个
fundPerson = context.PERSON.Where(a=>a... == NAME).Select(a=>a.NAME).SingleOrDefault();
你的问题有点误导。您是否在追求一组名称,就像运行 SQL"从人中选择名称"一样?
如果是这样,请使用 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);