use*_*311 6 c# sql sql-server-2008 entity-framework-6
我的班级看起来像这样,我添加了IsModified可以为空的新属性.我可以A仅使用Name和Key属性创建一个新的类型实体,但是当我尝试更新IsModifieddb中任何现有记录为null的键时,我从Entity Framework中得到此错误:
System.Data.Entity.Validation.DbEntityValidationException.
IsModifiedcontext.SaveChangesAsync()需要该字段.
型号类:
public class A
{
public long ID { get; set; }
public string Key { get; set; }
public bool? IsModified { get; set; }
public string Name { get; set; }
public A()
{
this.IsModified = false;
}
}
Run Code Online (Sandbox Code Playgroud)
SQL Server表:
CREATE TABLE [dbo].[A]
(
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](max) NOT NULL,
[Key] [nvarchar](max) NOT NULL,
[IsModified] [bit] NULL,
)
Run Code Online (Sandbox Code Playgroud)
我正在使用Entity Framework v6和代码优先方法.[IsModified]是可空的,所以我不确定为什么仍然需要这个领域.
这里的问题是布尔值不能配置为空。EF 始终会认为它是必需的。我更改IsModified bit null为IsModified bit not null default 1。并使用迁移使用默认值更新了现有记录。参考 - https://learn.microsoft.com/en-us/ef/core/modeling/required-optional。
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |