#34608·efcore

当实体拥有财产时,“Sqlite:Autoincrement”不为关键栏生成

作者: noelex创建于 2024年9月4日更新于 2026年9月27日
标签customer-reportedarea-sqlite

考虑以下配置: {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 公共类 { 公用长度 Id {得到; 设定;}

公有实体? 拥有 { get; set;} {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

公共类拥有实体 { 公用输入自有字段{ get; set;} {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

内部类 ReproDbContext: DbContext { 保护的覆盖空置 OnConfiguring( DbContext 选项构建器选项构建器) { 选项构建器。使用Sqlite( ); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

保护覆盖空置 OnModelCreating(ModelBuilder 模型Builder) { 模型建筑师。 实体 < SomeRandom Entity > (实体 {}} { 实体。 HasKey (x ××××××. 页:1 实体。 拥有(x×××××)

  • ; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

`dotnet ef migrations add'可产生以下代码的移民:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
迁移 Builder.CreateTable ()
名称: "某Random实体",
列: 表 QQ 新建
{
Id=表单。 列<长>(类型:"INTEGER",无效:虚假),
拥有 自有 场=表. 列<int>(类型:"INTEGER",无效:为真)
{\fn华文楷体\fs16\1cHE0E0E0}
限制:表...
{
表单。 PrimeKey ("PK SomeRandom Entity"), x QX. 页:1
* ;

注意Sqlite:Autoincrement'在Id'上缺失。 这可以通过将实体名称改为 “ Mynitity ” 来“固定” : {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 迁移 Builder.CreateTable () 名称:"我的实体", 列: 表 QQ 新建 { Id=表单。 列 < long>(类型: “INTEGER”, 无效: 假) . 注释("Sqlite: Autoincrement",真实), 拥有 自有 场=表. 列(类型:"INTEGER",无效:为真) {\fn华文楷体\fs16\1cHE0E0E0} 限制:表... { 表单。 PrimeKey ("PK My Entity"), x => x. 页:1

  • ;
或通过去除 " 自有 " 财产:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
迁移 Builder.CreateTable ()
名称: "某Random实体",
列: 表 QQ 新建
{
Id=表单。 列 < long>(类型: “INTEGER”, 无效: 假)
. 注释("Sqlite: Autoincrement",真实)
{\fn华文楷体\fs16\1cHE0E0E0}
限制:表...
{
表单。 PrimeKey ("PK SomeRandom Entity"), x QX. 页:1
* ;

将Microsoft.intityFramework Core.Sqlite'和Microsoft.intityFrameworkCore.Design ' 改为`6.0.33'也解决这个问题。

EF 核心版本:8.0.8' 数据库提供者:微软'。 实体框架公司. 斯克丽特 ' 目标框架:`净额-8.0'