无法将值 NULL 插入到"created_date"列的表"WebApp.dbo.Inventoryies"中;



我创建了一个模型BaseModel,将这2个属性date_createddate_modified继承到我数据库中的所有模型,以便在创建记录和修改记录时保持记录。

我为这些属性添加了?操作符以接受空值,如下所示:

基本模型:

namespace API.Models
{
public class BaseModel
{
public BaseModel()
{
created_date = DateTime.Now;
}
public DateTime? created_date { get; set; }
public DateTime? modified_date { get; set; }
}
}
库存

表:

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.AspNetCore.Mvc;
namespace API.Models
{
public class Inventory : BaseModel
{
[Key]
public int inventory_id { get; set; }
[Required(ErrorMessage = "El campo {0} es obligatorio"), StringLength(10, ErrorMessage = "{0} la longitud debe estar entre {2} y {1}.", MinimumLength = 5)]
public string name { get; set; }
public string? location { get; set; }
public bool? status { get; set; }
public List<Asset> assets { get; set; }
}
}

表:

using System.ComponentModel.DataAnnotations;
namespace API.Models
{
public class Asset : BaseModel
{
[Key]
public int asset_id { get; set; }
public int? code { get; set; }
[Required(ErrorMessage = "El campo {0} es obligatorio"), StringLength(10, ErrorMessage = "{0} la longitud debe estar entre {2} y {1}.", MinimumLength = 5)]
public string? name { get; set; }
public int iventory_id { get; set; }
public Inventory inventory { get; set; }
}
}

然后我添加迁移

dotnet ef migrations add v15

和应用迁移

dotnet ef database update

我得到以下错误:

不能插入值NULL到列'created_date',表' webapp .dbo. inventory ';列不允许为空。更新失败。语句已被终止

我不明白为什么我得到这个错误。

当我添加?操作符数据库不接受空值吗?

请使用这些

public class BaseModel
{
public BaseModel()
{
created_date = DateTime.Now;
}
[DataType(DataType.DateTime)]
public DateTime? created_date { get; set; }
[DataType(DataType.DateTime)]
public DateTime? modified_date { get; set; }
}

public class BaseModel
{
public BaseModel()
{
created_date = DateTime.Now;
}
public Nullable<DateTime> created_date { get; set; }
public Nullable<DateTime> modified_date { get; set; }
}

我将示例代码上传到git中,只需更改ConnectionString

最新更新