我正在尝试创建到没有主键/引用的数据库表的映射。
public class TestMap : ClassMap<<Test>Test> {
public TestMap() {
WithTable("TestTable");
Map(x => x.TestColumn);
}
}这将失败,并期望id或复合id。这在流利的nhibernate中是可能的吗?
发布于 2011-05-23 21:11:28
至少在Oracle中,我已经为此使用了"ROWID“。对于mssql,您可以使用"ROW_NUMBER()“内置函数来只读访问表,但我还没有尝试过……
发布于 2009-05-05 02:11:49
不是的。您必须添加一个代理主键,如SQL Server中的identity列,以映射此表。据我所知,NHibernate本身并不支持这一点。
为什么这个表上没有主键呢?
发布于 2011-05-23 21:21:35
据我所知,nhibernate不支持这个功能。然而,作为一般经验法则,您真的应该始终拥有某种ID,如果您发现自己处于不需要ID的情况下,则应该评估您的数据模型。ID应该存在,无论它是特定于表的主键,还是来自另一个表的代理键。这不仅可以确保nhibernate可以处理表,还可以通过索引来提高性能。
在您开始假设nhibernate不会满足您的需求之前,请考虑一下为什么您的桌面上没有密钥,以及没有密钥有什么意义。
https://stackoverflow.com/questions/822966
复制相似问题