Sql server 减少EF核心字符串鉴别器列大小以允许索引
我的EF核心鉴别器列是这样创建的Sql server 减少EF核心字符串鉴别器列大小以允许索引,sql-server,entity-framework-core,Sql Server,Entity Framework Core,我的EF核心鉴别器列是这样创建的 modelBuilder.Entity<MyClass>() .HasDiscriminator<string>("MyDiscriminator") .HasValue<SubClass1>(nameof(SubClass1)) .HasValue<SubClass2>(nameof(SubClass2)) ... etc. 有没有办法定义一个字符串鉴别器,以便将最大长度设置为更
modelBuilder.Entity<MyClass>()
.HasDiscriminator<string>("MyDiscriminator")
.HasValue<SubClass1>(nameof(SubClass1))
.HasValue<SubClass2>(nameof(SubClass2))
... etc.
有没有办法定义一个字符串鉴别器,以便将最大长度设置为更合理的值,并且可以编制索引
或者,如果没有,那么在数据库中使用类似于
ALTER TABLE dbo.MyClass
ALTER COLUMN MyDiscriminator nvarchar(50)
HasDiscriminator
配置鉴别器CLR(阴影或常规)属性名称、类型和关联值。相应的数据库列名、类型、约束条件等的配置与任何其他属性一样—带有一些属性生成器重载
例如,您可以在配置鉴别器属性的代码之后添加以下内容:
//将鉴别器列类型设置为varchar(50)
modelBuilder.Entity()
.财产(“MyDiscriminator”)
.IsUnicode(错误)
.HasMaxLength(50);
//创建索引
modelBuilder.Entity()
.HasIndex(“MyDiscriminator”)
ALTER TABLE dbo.MyClass
ALTER COLUMN MyDiscriminator nvarchar(50)