我有一个 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
邮政关于那个。我真的不建议你这样做。
也许有人会为您提供一个非常棒的解决方案。抱歉,我知道这对你来说更像是一个没有答案的问题。祝你好运。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)