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。
首先,我不知道有一个很好的解决方案。 我建议您重新考虑您要做的事情,或者进一步解释为什么需要这样做。 可能有更好的解决方案。 我知道你想要的唯一解决方案是丑陋的,我不能真正推荐它。
- 您不能使用标识(自动增量)字段。 如果你把它放在你的专栏上,那么你无能为力。 您的数据库将抛出错误,或忽略您提供的值。
- 您必须自己处理自动增量。 有很多方法可以做到这一点(将当前值存储在数据库中,执行max()查询等)。
- 您可能会想要覆盖SaveChanges()。 这是关于那个的SO POST 。 我真的不建议你这样做。
也许有人会为您提供一个非常棒的解决方案。 对不起,我知道这对你来说不是一个非答案。 祝好运。
上述就是C#学习教程:Enity Framework覆盖标识列分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1031520.html