使用C#进行动态SQL Server访问的建议

时间:2010-08-06 01:50:02

标签: c# sql-server entity-framework dynamic

我正在寻找一个很好的解决方案,让我的生活更轻松,以动态的方式写入/读取SQL Server数据库。我从Entity-framework开始,让我的生活更容易开始,但随着软件变得更加通用和配置驱动,我发现Entity变得越来越不合适,因为它依赖于在设计时定义的特定对象。

我想做什么。

  • 在运行时生成表/字段。
  • 从包含未知架构的表名的表中选择行到通用数据类型(例如词典)
  • 使用通用数据类型(dictonary,其中字符串映射到字段名称)按表名将行插入表中,其中typeof(object)和字段类型之间的数据类型映射得到了处理。

我自己开始实现这些东西,但我想有人已经做过了。

有什么建议吗? 感谢。

3 个答案:

答案 0 :(得分:1)

我无法理解你所描述的内容与普通的旧ADO.NET有什么不同。 DataTable是基于SQL查询动态构造的,DataRow只是IndexedDictionary的一种特殊情况(有时称为OrderedDictionary,您可以通过字符串名称或类似列表的整数索引来访问值)。我不会判断选择ADO.NET对你的需求是对还是错,但我试图理解为什么你似乎已经排除了它。

答案 1 :(得分:1)

您可以使用Sql.Net(http://sqlom.sourceforge.net)在C#中轻松生成动态SQL语句。

答案 2 :(得分:0)

iBATIS.NET(现在MyBatis.NET)Data Mapper框架不会在运行时自动生成表或字段,但它允许您通过Dictionary对象选择和提交数据。

它可能不会完全满足您的需求(设置起来很乏味,但一旦设置起来很容易维护),但它可能值得一看。 Here's a link在线文档。

其他流行的框架可能会做同样或类似的事情,例如NHibernate。