2010-11-09 72 views
2

我正在使用遗留表格我无法更改。该数据库中有一个设置表,它由很多列(每个设置),只有一排:使用Nhibernate映射没有主键的单行表格

Columns: Setting1 | Setting2  | Setting3 | etc... 
     ----------+--------------+-----------+------------- 
Row1: SomeValue | AnotherValue | LastValue | etc... 

现在,这将是所有的罚款,如果不是因为该表缺少事实一个主键。显然,原始开发人员并不认为这是必要的,因为只有一行。

有没有任何方法将它与Nhibernate映射?我已经实现了一个基于SQL的解决方案,但我很想用Nhibernate获得灵活性和简单性。

我怕最糟糕,但是,有什么想法?

+0

为什么你不能改变表格?它是宪法的一部分还是什么?只需添加任何类型的虚拟Id列,并添加任何值。 – 2010-11-09 13:38:17

+0

该代码是与ERP系统集成的一部分,该系统又有一些其他集成从其他角度对其进行整合。我不想摆弄桌面结构,以防其他集成或ERP更新过程出现问题。整合将被出售给我们公司以外的客户,所以我无法确切地说出环境在生产中的外观。 – 2010-11-09 13:47:07

回答

2

你可以映射,增加了一个虚拟PK列的视图:

select 1 as SettingsId, Setting1, etc.... 

或从存储过程加载对象。

2

好吧,只要选择任何设置(列)作为Id。唯一不方便的是,如果你需要更改的是PK,你必须删除并设置重新插入该行...