c# - C#:只有在运行时才知道数据库名称和列名称时,将数据库映射到类属性
问题描述
我目前有一个与数据库交互和查询数据的程序。但是,我想弄清楚如何获取数据库和配置文件并将表内容映射到我现有的内容。
例如:我有类人。一个人有一个 ID(long)、accountName(string)、Title(string)、firstName(string) 和 lastName(string)。
新连接的数据库具有与 Person 相同的属性,但以不同的方式存储它们。他们可能会调用表 Individual,其中包含 UniqueID(long)、accName(string)、personalTitle(string)、fName(string)、lName(string) 列。
我从配置文件中知道与属性等效的每一列的名称,但我只能在运行时读取它。有没有办法我可以阅读我正在寻找的标题并将它们加载到这些类中,这样我就不必每次都对其进行硬编码?
提前致谢!
解决方案
我想到的最好的想法是跳过任何类型的 ORM,只使用查询字符串:
假设我们以这种方式使用纯 ADO
您的查询字符串将类似于:
string queryString =
$"SELECT {ConfigurationManager.AppSettings[productColumn]}
, {ConfigurationManager.AppSettings[PriceColumn]}
, {ConfigurationManager.AppSettings[productNameColumn]}
from dbo.{ConfigurationManager.AppSettings[ProductTableName]} "
+ "WHERE {ConfigurationManager.AppSettings[UnitPriceColumn]} > @pricePoint "
+ "ORDER BY {ConfigurationManager.AppSettings[UnitPriceColumn]} DESC;";
感觉有点奇怪,但要求也是如此。
推荐阅读
- jenkins - jenkins pipeline groovy - 列表框依赖于另一个列表框
- python - 读取特定 JSON 列以进行标记化
- javascript - Node JS - 循环通过 POST 请求并与其他数据结合的问题
- python - 使用漂亮的汤进行刮擦时出现错误 404,即使该站点存在
- dynamics-crm - 如何获取实体属性元数据列表?
- mysql - 触发器+过程问题
- r - 如何在 R 中没有转发和回复的情况下检索用户的推文?
- javascript - 未处理的拒绝(TypeError):无法读取未定义的属性“preventDefault”
- node.js - 如何进行幂等微基准测试或单独测量/模拟程序使用的 CPU 周期?
- python - pandas.DataFrame.loc:尝试根据日期时间修改列的值时返回 TypeError