gpt4 book ai didi

entity-framework - 映射 Nullable 类型代码优先

转载 作者:行者123 更新时间:2023-12-04 07:25:38 26 4
gpt4 key购买 nike

我的项目使用 EF Code First 运行良好。但现在我需要在 DB 中再添加 1 个字段(例如 DateTime 类型的 CreateDate),它可以为空。

所以,我编写了脚本来向 DB(CreateDate (datetime) null) 添加另外 1 个字段,然后我修改了我的模型以包含新字段

public class Account()
{
...
public DateTime CreateDate { get; set; }
}

下面是使用 FluentApi 制作此字段选项的代码

Property(x => x.CreateDate).IsOptional();

问题是当我尝试获取任何 Account 实例时,出现错误当我修改字段如下:

public DateTime? CreateDate { get; set; }

然后就可以了。

你们能帮我解释一下吗?为什么我的 fluent api 不起作用或我做错了什么?

谢谢。

最佳答案

您已经在问题中给出了解决方案... :) 您必须将新属性声明为:

public DateTime? CreateDate { get; set; }

DateTime?nullable type并且意味着 CreateDate 可以为空。

这是必要的,因为当从数据库中获取记录并且它的 CreateDateNULL 时,模型上的支持属性应该接受 null 作为可能的值。如果您将属性声明为只是 DateTime CreateDate 框架会给您错误通知它无法将 NULL 值分配给不接受 的属性空.

所以你应该有:

public class Account()
{
...

public DateTime? CreateDate { get; set; }
}

关于entity-framework - 映射 Nullable 类型代码优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12756766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com