如何使用Linq选择列名

3
我陷入了一种情况,需要改进我的逻辑,我正在尝试这样做。 情况是,我们都知道如何更新列的特定细节,就像这样。
Person result = (from p in Context.Persons
          where p.person_id == 5
          select p).SingleOrDefault();

result.is_default = false;

Context.SaveChanges();

好的,一切顺利!

现在假设我有一个存储在会话中的值is_default,即表格的列名。

我该如何使用这个值来更新列,就像这样:

update table name set "Session value" = true 

这里的会话值是表格中的列名is_default。是否可以使用EF、LINQ实现?

1个回答

4
您可以使用以下反射概念来实现此功能。
Person result = (from p in Context.Persons
          where p.person_id == 5
          select p).SingleOrDefault();

PropertyInfo propertyInfo = result.GetType().GetProperty("Session value");
propertyInfo.SetValue(result , true, null);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接