在我的数据库表中,我没有任何主键或唯一键。我正在使用Oracle数据库表。在表中没有主键/唯一键列的情况下使用Fluent nHibernate
1.我可以在没有主键或唯一键的情况下使用Fluent nHibernate吗?
2.如果我可以使用它,我该如何做映射?因为Id
未映射时会引发异常。
在我的数据库表中,我没有任何主键或唯一键。我正在使用Oracle数据库表。在表中没有主键/唯一键列的情况下使用Fluent nHibernate
1.我可以在没有主键或唯一键的情况下使用Fluent nHibernate吗?
2.如果我可以使用它,我该如何做映射?因为Id
未映射时会引发异常。
如果使用oracle,请尝试使用“ROWID”。但在我看来,如果您没有任何主键或唯一键,那么最好使用您自己的ORM来满足您的需求。
可能重复Fluent-NHibernate table mapping with no primary key。
AFAIK所有ORM都需要一个主键。我看到的主要原因是在会话中管理脏跟踪和缓存机制。
此外,没有理由不在表中具有主键。即使你认为你不需要它,也可以使用一个自动递增的int列作为键,你应该没有问题。
事情是数据库已经存在,我不允许对它做任何更改。 – user2256857 2013-04-09 01:02:25
我明白这一点。问题是有些工具是以某种方式构建的,如果没有这些先决条件,可能这不是您应该使用的工具。看起来你有很多限制,所以也许你更喜欢Dapper这样的Micro ORM。 – tucaz 2013-04-09 18:59:21