如何使用 Entity Framework 6 Code First 设置默认值约束?

How can set a default value constraint with Entity Framework 6 Code First?(如何使用 Entity Framework 6 Code First 设置默认值约束?)
本文介绍了如何使用 Entity Framework 6 Code First 设置默认值约束?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在旧版应用程序中,大多数字符串属性不能为 null,并且需要具有默认值 string.empty.

In a legacy app, most string properties can't be null and need to have a default value of string.empty.

我知道可以通过迁移来做到这一点,但我正在寻找一种使用流畅的配置界面来做到这一点的方法:

I know it's possible to do this with migrations, but I'm looking for a way to do this using the fluent configuration interface:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Properties<string>().Configure(c =>
        {
            c.HasMaxLength(255);

            if (!c.ClrPropertyInfo.IsDefined(typeof (NullableAttribute), false))
            {
                c.IsRequired();
                // I want to set a default value (string.empty) here.
            }
    }

有没有办法做到这一点,或者我注定要初始化实体构造函数中的所有字符串?

Is there any way to do this or I'm doomed to initialize all strings in the entity constructors?

推荐答案

现在答案是是:

AddColumn("[table name]", 
          "[column name]", 
          c => c.Boolean(nullable: false, defaultValue: false));

这篇关于如何使用 Entity Framework 6 Code First 设置默认值约束?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)