使用Nhibernate映射没有主键的单行表

时间:2010-11-09 13:10:06

标签: c# nhibernate nhibernate-mapping

我正在使用我无法更改的旧表。数据库有一个设置表,其中包含许多列(每个设置一个),只有一行:

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

现在,如果不是因为表缺少主键,那么这一切都会好的。显然,原始开发人员并不认为这是必要的,因为只有一行。

有没有办法用Nhibernate映射这个?我已经实现了一个基于SQL的解决方案,但是我希望能够通过Nhibernate获得灵活性和简单性。

我担心最糟糕但是,有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

您可以映射添加虚拟PK列的视图:

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

或从存储过程加载对象。