gpt4 book ai didi

c# - 如何设置自动递增属性的初始值(DatabaseGeneratedOption.Identity)

转载 作者:太空狗 更新时间:2023-10-29 18:05:53 26 4
gpt4 key购买 nike

我有一个名为 Offer 的类,如下所示:

public class Offer
{
public Guid Id { get; set; }

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int OfferNo { get; set; }

public OfferType OfferType { get; set; }
public DateTimeOffset DateAdded { get; private set; }
public DateTimeOffset DateEdited { get; set; }
public bool IsActive { get; set; }
}

显然,我正在使用 Id 属性作为我的 PK。但我还需要显示优惠的 Id(因为用户将使用此值搜索优惠)并且 Guid 属性对于它来说太长了。

因此,我尝试使用 DatabaseGeneratedOption.Identity 自动递增整数列 OfferNo,但我无法设置初始值来递增。我插入了一个虚拟条目,然后尝试将 OfferNo 设置为 1 以外的值,但收到以下异常:

不支持修改具有“Identity”模式的列。列:'OfferNo'。表:“CodeFirstDatabaseSchema.Offer”。

我想使用代码优先设置这个自动递增列的初始值。另一种解决方案也将受到赞赏。

最佳答案

刚刚找到了解决这个问题的方法。您可以简单地在 Up() 方法中调用 Sql() 方法。

public override void Up()
{
CreateTable(
"Offers",
c => new
{
OfferNo = c.Int(nullable: false, identity: true),
...
})
.PrimaryKey(t => t.OfferNo);
Sql("DBCC CHECKIDENT ('Offers', RESEED, 100);");
}

关于c# - 如何设置自动递增属性的初始值(DatabaseGeneratedOption.Identity),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23887992/

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