sql-server 如何在EF Core中设置Fluent API的默认值是全局必需的?

ktecyv1j  于 2022-10-31  发布在  其他
关注(0)|答案(3)|浏览(193)

我使用一些表和列创建了我的第一个初始迁移,但我看到了一件事,我的所有字段都不是空的,并且对于我希望为空的每个字段(几乎所有字段),我需要指定IsRequired(false)

有一种方法可以将所有字段设置为可空,并且只对那些我希望成为必填字段的字段调用isRequired()(true)?

**我不想使用数据注解或其他东西,只想使用Fluent Api,**所以只有在Fluent Api中存在全局设置时,否则我会将每个字段都设置为IsRequired。我想将模型从FluentApi配置文件中分离出来,因为将来如果我想使用另一个ORM,我只需要更改FluentApi配置文件。

4uqofj5v

4uqofj5v1#

在实体中,可以将属性设置为可为空

Public class Booking 
{
        public Guid? MyProperty{ get; set; }

        public int? MyProperty{ get; set; }

        public decimal? MyProperty{ get; set; }
}

或者使用JetBrains.Annotations

using JetBrains.Annotations;

Public class Booking 
{
        [CanBeNull]
        public Guid MyProperty{ get; set; }

        [CanBeNull]
        public int MyProperty{ get; set; }

        [CanBeNull]
        public decimal MyProperty{ get; set; }
}
d6kp6zgx

d6kp6zgx2#

在设置类时,可以使用可为空值类型,例如:

public class a {

int? a { get; set; }

}
cxfofazt

cxfofazt3#

对你的问题的回答是“不”。
您可以加入类别和静态方法,以提供单一来源的真实常数。

public static class MyDefaultDictionary() {

   /* the below is false because ___________________ */
   public const bool IsRequiredDefault = false;

}

.IsRequired(MyDefaultDictionary.IsRequiredDefault);

相关问题