Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体类型的实例';Unidad';无法跟踪,因为另一个实例具有相同的键值EF_C#_Entity Framework - Fatal编程技术网

C# 实体类型的实例';Unidad';无法跟踪,因为另一个实例具有相同的键值EF

C# 实体类型的实例';Unidad';无法跟踪,因为另一个实例具有相同的键值EF,c#,entity-framework,C#,Entity Framework,我来自阿根廷,对不起我的英语。由于映射原因,我将枚举更改为类,但该枚举出现此错误 public enum UnidadEnum{ Gramos, Unidad, CN } 这是要映射的类: public class Unidad { [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] public int IdUnidad{ get; set; } [Required, MaxLength(100)

我来自阿根廷,对不起我的英语。由于映射原因,我将枚举更改为类,但该枚举出现此错误

public enum UnidadEnum{
  Gramos,
  Unidad,
  CN
}
这是要映射的类:

public class Unidad
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int IdUnidad{ get; set; }

    [Required, MaxLength(100)]
    public string nombre { get; set; }

    private Unidad(UnidadEnum @elem)
    {
        IdUnidad = (int)@elem;
        nombre = @elem.ToString();
    }

    protected Unidad() { }

    public static implicit operator Unidad(UnidadEnum @enum) => new Unidad(@enum);

    public static implicit operator UnidadEnum(Unidad u) => (UnidadEnum)u.IdUnidad;
    }
在我的数据库上下文中添加种子:

modelBuilder.Entity<Unidad>().HasData(UnidadEnum.CN, UnidadEnum.Unidad, UnidadEnum.Gramos);
当我想添加一个新的Comida with Alimentos witch包含相同的Unidad(gramos)时,错误显示

无法跟踪实体类型“Unidad”的实例,因为已在跟踪另一个具有{IdUnidad'}相同键值的实例。附着现有实体时,请确保仅附着一个具有给定键值的实体实例。考虑使用“dBraveTopStudioBuffel.EnabelSythViDeAtCug”来查看冲突的键值。

我不是每次添加Comida时都显式地添加Unidad的实例,因此EF每次都添加一个新的Gramos实例,而不是使用或更新同一个实例。我不知道如何修理它。或指示EF仅使用种子

 [Table("Alimento")]
 public class Alimento
  { 
    public int AlimentoId;

   [Column("nombre", TypeName="nvarchar(100")]
   public String nombre { get; set; }
   public virtual Unidad Unidad { get; set; }
   public int IdUnidad { get; set; }
}