Csharp/C#教程:Enity Framework覆盖标识列分享


Enity Framework覆盖标识列

我有一个Code First EF类,如下所示:

public class Event { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int ID { get; set; } /* snip */ } 

我想要发生的是当ID属性为null或0时,数据库将为其生成ID值,但是如果我显式设置此值为newEvent.ID=10000000 ,它将使用它作为ID列,当前正在执行这将导致下一个可用的ID。

首先,我不知道有一个很好的解决方案。 我建议您重新考虑您要做的事情,或者进一步解释为什么需要这样做。 可能有更好的解决方案。 我知道你想要的唯一解决方案是丑陋的,我不能真正推荐它。

  1. 您不能使用标识(自动增量)字段。 如果你把它放在你的专栏上,那么你无能为力。 您的数据库将抛出错误,或忽略您提供的值。
  2. 您必须自己处理自动增量。 有很多方法可以做到这一点(将当前值存储在数据库中,执行max()查询等)。
  3. 您可能会想要覆盖SaveChanges()。 这是关于那个的SO POST 。 我真的不建议你这样做。

也许有人会为您提供一个非常棒的解决方案。 对不起,我知道这对你来说不是一个非答案。 祝好运。

上述就是C#学习教程:Enity Framework覆盖标识列分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1031520.html

(0)
上一篇 2022年1月13日
下一篇 2022年1月13日

精彩推荐