没有主键的Fluent-NHibernate表映射

8 fluent-nhibernate

我正在尝试创建一个没有主键/引用的数据库表的映射.

public class TestMap : ClassMap<<Test>Test> {

    public TestMap() {

        WithTable("TestTable");

        Map(x => x.TestColumn);

    }

}
Run Code Online (Sandbox Code Playgroud)

这失败并期望id或composite-id.这是否可以流利的nhibernate?

Tom*_*mpi 5

至少在 Oracle 中,我为此使用了“ROWID”。对于 mssql,您可能会使用“ROW_NUMBER()”内置函数对表进行只读访问,但我还没有尝试过...


Jam*_*Ide 2

不可以。您必须添加代理主键(例如 SQL Server 中的标识列)来映射此表。据我所知,NHibernate 本身不支持这一点。

为什么这个表上没有主键?

  • 我也想知道这个问题的答案。有时(实际上是大多数时间)我们并不是在未开发的场景中工作。相反,我们在无法修改的现有数据库架构上放置了一个新的流畅的 NHibernate DAL。我有一个没有标识列和明确定义的键的表。相信我,如果我可以更改此架构,我们会的,但我们要求不要更改数据库架构。 (5认同)