gpt4 book ai didi

c# - EF 中的可选 DatabaseGenerated 属性

转载 作者:行者123 更新时间:2023-11-30 18:16:37 25 4
gpt4 key购买 nike

我有这段代码并且工作正常,当我创建一个新对象时数据库生成新的 ID

   [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public override Guid Id
{
get => base.Id;
set => base.Id = value;
}

我的问题是:我有一种情况,然后我需要使用我使用此 Id 的模型创建一个新寄存器,并且 Id 是固定的,我不能使用生成的。有什么可选参数可以覆盖这一代?

我尝试指定 Id 属性,但 EF 忽略并生成了一个新属性。

最佳答案

好吧,我设法直接使用 SqlCommand 进行了修复,因为它只是在数据库 Seed 中,需要调用它来插入特定用户。

        Guid userid = user.Id;
string email = user.Email;
string username = user.UserName;
string avatarurl = user.Details.AvatarUrl;
string firstname = user.Details.FirstName;

var sql = @"INSERT INTO
[Users]
([Id], [Email], [UserName], [EmailConfirmed], [PhoneNumberConfirmed], [AccessFailedCount], [TwoFactorEnabled], [LockoutEnabled])
VALUES
(@Id, @Email, @Username, 'false', 'false', 0, 'false', 'false')";

SqlParameter[] groupIdParam =
{
new SqlParameter("@Id", SqlDbType.UniqueIdentifier)
{
Value = userid
},
new SqlParameter("@Email", SqlDbType.NVarChar)
{
Value = email
},
new SqlParameter("@Username", SqlDbType.NVarChar)
{
Value = username
}
};

_context.Database.ExecuteSqlCommand(sql, groupIdParam);

关于c# - EF 中的可选 DatabaseGenerated 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46078987/

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