Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 减少EF核心字符串鉴别器列大小以允许索引_Sql Server_Entity Framework Core - Fatal编程技术网

Sql server 减少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. 有没有办法定义一个字符串鉴别器,以便将最大长度设置为更

我的EF核心鉴别器列是这样创建的

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)