Entity framework core 实体框架核心2.0-错误迁移“;实体类型的字段为只读,因此无法设置;

Entity framework core 实体框架核心2.0-错误迁移“;实体类型的字段为只读,因此无法设置;,entity-framework-core,Entity Framework Core,我的模型中可能有一些错误,我无法找出,因为在尝试进行迁移时出现以下错误: “在类程序上调用方法'BuildWebHost'时出错。在没有应用程序服务提供程序的情况下继续。错误:实体类型为'MapeArticulProvider'的字段'k_uBackingField'为只读,因此无法设置。”。 无法创建“NSideoContext”类型的对象。请将“IDesignTimeDbContextFactory”的实现添加到项目中,或参阅以获取设计时支持的其他模式。” 实体: [Table("Mapeo

我的模型中可能有一些错误,我无法找出,因为在尝试进行迁移时出现以下错误:

“在类程序上调用方法'BuildWebHost'时出错。在没有应用程序服务提供程序的情况下继续。错误:实体类型为'MapeArticulProvider'的字段'k_uBackingField'为只读,因此无法设置。”。 无法创建“NSideoContext”类型的对象。请将“IDesignTimeDbContextFactory”的实现添加到项目中,或参阅以获取设计时支持的其他模式。”

实体:

[Table("MapeosArticuloProveedor", Schema = "public")]
public class MapeoArticuloProveedor
{

    public string Codigo { get; set; }        

    public int? IdLadoDeMontaje { get; set; }

    [ForeignKey("IdLadoDeMontaje")]
    public virtual LadoDeMontajeMapeoArticulo LadoDeMontaje { get; }

}

[Table("LadosDeMontajeMapeosArticulos", Schema = "public")]
public class LadoDeMontajeMapeoArticulo
{

    public string Codigo { get; set; }

    public string Valor { get; set; }

}
可能是什么?这是你的问题:

公共虚拟LadoDeMontajeMapeoArticulo LadoDeMontaje{get;}

基本上,错误是一旦检索到“LadoDeMontaje”,就不能设置它

只需将其更改为:


公共虚拟LadoDeMontajeMapeoArticulo LadoDeMontaje{get;set;}

@WanneBDeveloper基本上,您公开了该财产。更保守的方法是将其设置为:

public LadoDeMontajeMapeoArticulo LadoDeMontaje{get;private set;}
注意private关键字


然后,只能在
类内设置属性,而不能在类外设置属性。因此,您将知道哪个类正在改变它的状态。

很可能
LadoDeMontaje{get;}
。添加
set