c# – 将未知数量的列映射到Dictionary
发布时间:2020-12-15 17:15:48 所属栏目:百科 来源:网络整理
导读:我有一个遗留系统,可以在需要时动态扩充带有其他列的表.现在我想通过C#/ NHibernate访问所述表. 没有办法改变遗留系统的行为,我动态地需要使用附加列中的数据.因此,动态组件映射不是一种选择,因为我不知道其他列的确切名称. 有没有办法将所有未映射的列放入
我有一个遗留系统,可以在需要时动态扩充带有其他列的表.现在我想通过C#/ NHibernate访问所述表.
没有办法改变遗留系统的行为,我动态地需要使用附加列中的数据.因此,动态组件映射不是一种选择,因为我不知道其他列的确切名称. 有没有办法将所有未映射的列放入字典(列名作为键)?或者,如果这不是一个选项,将所有列放入字典? 同样,我不知道编译时列的名称,所以这必须是完全动态的. 例: public class History { public Guid Id { get; set; } public DateTime SaveDateTime { get; set; } public string Description { get; set; } public IDictionary<string,object> AdditionalProperties { get; set; } } 因此,如果表History包含Columns Id,SaveDateTime,Description,A,B,C和D,我想在IDictionary中包含“A”,“B”,“C”和“D”.或者,如果这太难了,只需将所有列放在那里. 对于初学者,如果有帮助,我也可以使用字符串列. 解决方法
您可能需要一个ADO.NET查询来获取此数据.如果使用NH,即使使用SELECT *进行SQL查询,也不会获得列名.
您可以尝试使用SMO(SqlServer管理对象,SqlServer的.NET端口)或其他方式来查找表定义.然后使用动态组件Fluent NHibernate构建映射.在使用会话工厂后,我不确定是否可以更改映射.值得一试.祝好运 :-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- iPhone SDK:用于停止加载/下载图像的UIWebView
- Vue.js进行查询操作的实例详解
- 在 React 工程中利用 Mota 编写面向对象的业务模
- ruby-on-rails – Rails – 文件中的行数
- Caused by: org.xml.sax.SAXParseException; lin
- 对于此解释器错误rvm,JRuby无法切换到1.6.2
- Oracle Linux 6.8安装 mysql 5.7.17的详细教程
- ruby-on-rails-3.2 – 使用Active Admin Editor进
- cocos2d-x lua 位操作
- c# – Windows应用商店应用中的SOAP编码
热点阅读