gpt4 book ai didi

c# - 使用 Entity Framework 插入时有条件地设置 Identity 字段

转载 作者:太空狗 更新时间:2023-10-29 22:01:06 25 4
gpt4 key购买 nike

我将 Firebird ADO.NET 提供程序与 Entity Framework 一起使用,但这个问题也适用于其他提供程序。

我的模型上有一个字段如下

    [Column("JOBNO"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int JobNo { get; set; }

在数据库中,我有一个“插入时”触发器,如果​​ JOBNO 设置为 NULL,它会使用生成器更新 JOBNO 字段>/p>

通过在我的模型字段上将 DatabaseGenerated 属性设置为 DatabaseGeneratedOption.Identity, Entity Framework 在插入时从数据库中正确提取 JOBNO

但是有时我想在插入时手动指定JOBNO列,但是EF不理解,只是使用生成的值。

有没有办法允许对 DataBaseGenerated 字段进行这种条件设置?

最佳答案

恐怕无法对 DataBaseGenerated 字段进行条件设置!

第一个选项:是将插入触发器的行为转移到您的应用程序(而不是数据库),这样您将始终从应用程序生成 id。

第二个选项:不指定身份并在数据库上保留为 NULLABLE。这样您将允许 EF 接收数据,并且当它没有接收到时您从触发器中获取值。 (但请确保更改触发器,以便它在未提供时创建一个新 ID!)

关于c# - 使用 Entity Framework 插入时有条件地设置 Identity 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18820881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com