gpt4 book ai didi

c# - 具有整数主键但不是自动整数的 Entity Framework 不会传递给数据库

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:01 25 4
gpt4 key购买 nike

这是表格和代码

public class Person {
[Key] public int ID {get;set;}
public string Name {get;set;}
}

var owner = new Person() { ID = 1, Name = "Owner" };
db.People.Add(Person);
db.SaveChanges();

SaveChanges 方法没有将 ID 添加到 sql,所以我最终得到以下 sql 查询

exec sp_executesql N'insert [dbo].[People]([Name])
values (@0)
select [ID]
from [dbo].[People]
where @@ROWCOUNT > 0 and [ID] = scope_identity()',N'@0 varchar(50),@0='Owner'

而不是带有 ID 的预期插入语句。

我是否需要其他属性来确保 ID 作为查询的一部分传递?

我确定它会被询问,但它是故意的非自动增量。

最佳答案

在 EF 5 中,答案是

this.HasKey(t => t.UserID)
.Property(p => p.UserID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

DatabaseGeneratedOption.Computed 当字段计算在 sql server 内部完成时使用。

关于c# - 具有整数主键但不是自动整数的 Entity Framework 不会传递给数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3426004/

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