【问题标题】:Can DataObjects.NET support SQL identity columns?DataObjects.NET 可以支持 SQL 标识列吗?
【发布时间】:2010-05-21 03:05:37
【问题描述】:

虽然 DataObjects.NET 有很多值得喜欢的地方,但我发现帮助资源很精简,并且找不到将 DataObjects.NET 与 RDBMS 生成的主键一起使用的唯一示例。似乎 D4O 不会对 SQL Server 执行插入操作,除非它在密钥的控制之下。

有人在野外解决过这个问题吗?

【问题讨论】:

    标签: c# .net orm identity dataobjects.net


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2021-12-31
      • 2010-09-25
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      相关资源
      最近更新 更多