c# - LINQ - 以列名作为字符串参数访问列

标签 c# sql linq

(类似于 this question )

我有名为“问题”和“FinalFigures”的表格:

问题(问题 ID、文本、FinalFiguresColumnName)
FinalFigures(FinalFigureID、TotalDays、TotalCost 等)

'FinalFiguresColumnName' 将具有“TotalDays”、“TotalCost”等值。是否有一种简单的方法可以遍历一组问题并将“Text”值保存到“FinalFigures”上的相应列名称表?

即。而不是:

var item = new FinalFigure();
item.TotalDays = "x";

我需要:

var item = new FinalFigure();
// access the column 'TotalDays' with its name as a string, not a property

最佳答案

您可以使用一些反射来通过属性的字符串名称获取属性值,而不是直接访问它。

var value = (int)item.GetType().GetProperty("TotalDays").GetValue(item);

要设置值,只需调用 SetValue();

item.GetType().GetProperty("TotalDays").SetValue(item, value);

关于c# - LINQ - 以列名作为字符串参数访问列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686139/

相关文章:

c# - 比较 LINQ to SQL 中的两个日期

c# - 了解类 SmtpDeliveryMethod

java - 将序列化的 Java 对象转换为 C# 对象

sql - 如何使用 SQL 语法更改主键约束?

php - SQL/PHP 查询在 PHPmyAdmin 中有效,但在站点中无效

c# - 在泛型上调用实例方法的委托(delegate)

c# - 独立存储不支持给定路径的格式

c# - 使用 Linq 仅从集合中选择子类

.net - 如何在 .NET 中创建通用 SQL 参数?

c# - XDocument - 表达式帮助