.NET Core - 迁移流畅 API HasColumnType
.NET Core - Migration Fluent API HasColumnType
我正在为 SQLSERVER 和 PostgreSQL.
使用 .NET CORE 2.2 和 EF CORE
在 postgresql 中不存在 varchar(max) 或 varchar(-1),就像在 SQLSERVER 中一样,在 postgresql 中数据类型是文本。
在本专栏中,我需要它是 SQL 服务器的 varchar(max) 和 Postgres 的文本。,如何实现?
每个提供商都需要了解迁移。
感谢您的帮助。
builder.Property(x => x.Foo).HasColumnType("varchar(-1)");
对不起,我的英文不太好
我不知道您使用的是数据库优先还是代码优先的方法
- 对于数据库优先:您可以简单地运行包管理器控制台中的以下脚本,并确保已设置要导入的默认项目
对于 MSSQL
Scaffold-DbContext "Server=xxxxxx;Database=TestDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -F -OutputDir Models
以上将生成表的几乎所有属性
对于 Postgres
Scaffold-DbContext "{YourConnectionString}" Npgsql.EntityFrameworkCore.PostgreSQL -F -OutputDir Models
如果有帮助请告诉我。
字符串的默认 ColumnType 将自动映射到最大长度字段。所以省略列类型你应该得到你想要的。
builder.Property(x => x.Foo)
如前所述,使用默认值应该可以满足您的需求,即文本列的最大长度。
builder.Property(x => x.Foo)
然而,如果你想要明确而不使用默认值,你可以使用这样的东西:
builder.Property(x => x.Foo).HasColumnType("nvarchar(max)");
如果只想改变最大长度,这个api也可以:
builder.Property(x => x.Foo).HasMaxLength(50);
我正在为 SQLSERVER 和 PostgreSQL.
使用 .NET CORE 2.2 和 EF CORE在 postgresql 中不存在 varchar(max) 或 varchar(-1),就像在 SQLSERVER 中一样,在 postgresql 中数据类型是文本。
在本专栏中,我需要它是 SQL 服务器的 varchar(max) 和 Postgres 的文本。,如何实现?
每个提供商都需要了解迁移。
感谢您的帮助。
builder.Property(x => x.Foo).HasColumnType("varchar(-1)");
对不起,我的英文不太好
我不知道您使用的是数据库优先还是代码优先的方法
- 对于数据库优先:您可以简单地运行包管理器控制台中的以下脚本,并确保已设置要导入的默认项目
对于 MSSQL
Scaffold-DbContext "Server=xxxxxx;Database=TestDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -F -OutputDir Models
以上将生成表的几乎所有属性
对于 Postgres
Scaffold-DbContext "{YourConnectionString}" Npgsql.EntityFrameworkCore.PostgreSQL -F -OutputDir Models
如果有帮助请告诉我。
字符串的默认 ColumnType 将自动映射到最大长度字段。所以省略列类型你应该得到你想要的。
builder.Property(x => x.Foo)
如前所述,使用默认值应该可以满足您的需求,即文本列的最大长度。
builder.Property(x => x.Foo)
然而,如果你想要明确而不使用默认值,你可以使用这样的东西:
builder.Property(x => x.Foo).HasColumnType("nvarchar(max)");
如果只想改变最大长度,这个api也可以:
builder.Property(x => x.Foo).HasMaxLength(50);