我的 EF Core 鉴别器列是这样创建的
modelBuilder.Entity<MyClass>()
.HasDiscriminator<string>("MyDiscriminator")
.HasValue<SubClass1>(nameof(SubClass1))
.HasValue<SubClass2>(nameof(SubClass2))
... etc.
Run Code Online (Sandbox Code Playgroud)
属性 MyDiscriminator 未在 MyClass 上定义 - 它会自动添加,但是创建的 SQL 表将 MyDisciminator 列定义为 nvarchar(max) 鉴别器列中的值只能来自定义的列表,即“SubClass1”、“SubClass2” ETC。
如果我尝试对鉴别器列进行索引,我会得到
Msg 1919, Level 16, State 1, Line 29
Column 'MyDiscriminator' in table 'dbo.MyClass' is of a type that is invalid for use as a key column in an index.
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以定义字符串鉴别器,以便可以将最大长度设置为更合理的值 - 并且可以建立索引?
或者,如果没有,使用类似的方法在数据库中手动更改它是否会存在任何陷阱
ALTER TABLE dbo.MyClass
ALTER COLUMN MyDiscriminator nvarchar(50)
Run Code Online (Sandbox Code Playgroud) 我正在将我的 Azure DevOps 版本更改为 .NET Core。
除了在我的提要中获取包的最后一步之外,一切正常,我收到此错误:
响应状态代码不表示成功:409(冲突 - 提要已包含“mypackage 1.0.x”(Devops 活动 ID:xxx))
在旧的“Nuget Push”步骤中,有一个“允许跳过重复项”选项,专门用于解决此问题 - 但此选项在“dotnet push”步骤中不可用。
这在 dotnet 核心世界中如何实现?