【问题标题】:Add migration with Required attribute on model class in EF在 EF 中的模型类上添加具有必需属性的迁移
【发布时间】:2019-07-09 14:13:55
【问题描述】:

我已经在 EF 中创建了一个模型。现在我发现我需要在我的模型中添加一个新的模型类,它应该是必需的。在此处查看示例

public class MyBox
{
  public long ID{get;set;}
    .
    .
    .
  //this is added later
  [Required]  
  public virtual MyBoxDimension Dimensions{get;set;}
}

如何添加迁移以使我的MyBoxDimension 具有新的默认对象/值?

【问题讨论】:

    标签: c# entity-framework entity-framework-migrations


    【解决方案1】:

    您不需要为复杂类型添加 required 属性,因为复杂类型始终是必需的 (more info):

    var user = new MyBox()
    {
        Dimensions = new MyBoxDimension()
    };
    

    顺便说一句,您可以通过以下方式添加迁移:

    add-migration FirstMigration
    

    然后你可以这样更新你的数据库:

    update-database -Verbose
    

    【讨论】:

    • 忘了提到我在所有复杂类型上都有虚拟。当我查询由数据库支持的 EF 时,我确实可以在未设置且不需要的属性上获取空值。所以我不确定你/你的链接意味着什么总是需要复杂类型......
    • 好的,我想我现在明白我使用了错误的术语。我不使用 [ComplexType] 属性,所以我有“复杂类型”只是另一个模型类(或者你怎么称呼它)
    【解决方案2】:

    为了结束这个问题,我会提供我自己的答案

    我遇到的问题是我认为迁移可以为引用属性提供默认值。 解决方案是添加一个新的迁移来创建一个MyBoxDimensions 表,然后在MyBox 类构造函数中创建一个MyBoxDimension 的新实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2016-05-30
      • 2018-08-09
      • 2021-07-26
      相关资源
      最近更新 更多