DataObjects.NET 可以支持 SQL 标识列吗?
Posted
技术标签:
【中文标题】DataObjects.NET 可以支持 SQL 标识列吗?【英文标题】:Can DataObjects.NET support SQL identity columns? 【发布时间】:2010-05-21 03:05:37 【问题描述】:虽然 DataObjects.NET 有很多值得喜欢的地方,但我发现帮助资源很精简,并且找不到将 DataObjects.NET 与 RDBMS 生成的主键一起使用的唯一示例。似乎 D4O 不会对 SQL Server 执行插入操作,除非它在密钥的控制之下。
有人在野外解决过这个问题吗?
【问题讨论】:
【参考方案1】:没有简单的方法让 DO4 使用 IDENTITY 列 - 主要是因为它被设计为依赖批量密钥生成(又名 HiLo 算法)。
AFAIK,这里没有好的解决方法。例如。 DO4 支持自定义密钥生成器,但是开发一个依赖 IDENTITY 列的生成器非常复杂 - 事实上,它应该批量插入虚假记录并进一步删除它们(或回滚事务)才能工作。考虑到可能存在具有唯一约束的列,任务变得相当复杂。
我们会考虑在未来实施。
【讨论】:
P.S.我刚刚在我们的支持邮件列表中阅读了同样的问题。所以我会发送这个问题的链接作为回复。 OT Alex ,我可以去数据库并手动删除一个对象,然后在我的网格中那个对象不应该出现吗? 当然 - DO 不需要所有操作都通过它。【参考方案2】:你可以像这样使用 Key 属性:
[Field, Key]
public int Id get; private set;
更多信息:https://help.dataobjects.net/#DataObjects.Net%20v5.0/06-Keys.html
【讨论】:
以上是关于DataObjects.NET 可以支持 SQL 标识列吗?的主要内容,如果未能解决你的问题,请参考以下文章