【发布时间】:2010-05-21 03:05:37
【问题描述】:
虽然 DataObjects.NET 有很多值得喜欢的地方,但我发现帮助资源很精简,并且找不到将 DataObjects.NET 与 RDBMS 生成的主键一起使用的唯一示例。似乎 D4O 不会对 SQL Server 执行插入操作,除非它在密钥的控制之下。
有人在野外解决过这个问题吗?
【问题讨论】:
标签: c# .net orm identity dataobjects.net
虽然 DataObjects.NET 有很多值得喜欢的地方,但我发现帮助资源很精简,并且找不到将 DataObjects.NET 与 RDBMS 生成的主键一起使用的唯一示例。似乎 D4O 不会对 SQL Server 执行插入操作,除非它在密钥的控制之下。
有人在野外解决过这个问题吗?
【问题讨论】:
标签: c# .net orm identity dataobjects.net
没有简单的方法让 DO4 使用 IDENTITY 列 - 主要是因为它被设计为依赖批量密钥生成(又名 HiLo 算法)。
AFAIK,这里没有好的解决方法。例如。 DO4 支持自定义密钥生成器,但是开发一个依赖 IDENTITY 列的生成器非常复杂 - 事实上,它应该批量插入虚假记录并进一步删除它们(或回滚事务)才能工作。考虑到可能存在具有唯一约束的列,任务变得相当复杂。
我们会考虑在未来实施。
【讨论】:
你可以像这样使用 Key 属性:
[Field, Key]
public int Id { get; private set; }
更多信息:https://help.dataobjects.net/#DataObjects.Net%20v5.0/06-Keys.html
【讨论】: