Vis*_*dia 4 .net c# sql sql-server generics
我正在创建一个仪表板.我已经开始重构应用程序,因此与查询数据库相关的方法是通用的或动态的.
我对仿制药的概念还很陌生,而且还是业余程序员,但我已经做了一些搜索,我试图想出一个解决方案.问题不在于以动态方式构建查询字符串.我很好地连接字符串文字和变量,我真的不需要更复杂的东西.对我来说更大的问题是当我创建此查询时,获取数据并以动态方式将其分配给正确的变量.
假设我有一个缺陷表,另一个用于测试用例,另一个用于测试运行.我想创建一个看起来像这样的方法:
public void QueryDatabase<T>(ref List<T> Entitylist, List<string> Columns, string query) where T: Defect, new()
Run Code Online (Sandbox Code Playgroud)
现在这不完美,但你明白了.并非关于缺陷,测试用例和测试运行的所有内容都相同,但我正在寻找一种方法来将检索到的列动态分配给其"正确"变量.
如果需要更多信息,我可以提供.
Joe*_*l C 14
你正在重新发明轮子.使用ORM,如Entity Framework或NHibernate.你会发现它更灵活,这样的工具会随着时间的推移不断发展并添加新功能并提高性能,同时你可以专注于更重要的事情.
编辑:
虽然我认为总体来说学习使用这样的工具很重要(我个人是Entity Framework的粉丝并且已经成功地在几个项目中使用它,并且之前使用过LINQ to SQL),它仍然可以有价值的学习练习,了解如何做到这一点.我有使用XML来定义数据模型的ORM,并使用XML文件上的代码生成来创建类模型.LINQ to SQL在代码生成的类上使用自定义属性来定义每个类和属性的源表和列,并在运行时使用反射将从a返回的数据映射SqlDataReader到类对象的属性.实体框架的行为可能会有所不同,具体取决于您使用的版本,无论您使用"默认"还是"POCO"模板,但最终基本上都是相同的(使用反射将数据库结果映射到您的类上的属性),它只是可能或不使用自定义属性来确定映射.我认为NHibernate也是这样做的.
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |