Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
Asp.net mvc 4 首先使用实体框架代码保存数据_Asp.net Mvc 4_C# 4.0_Entity Framework 6 - Fatal编程技术网

Asp.net mvc 4 首先使用实体框架代码保存数据

Asp.net mvc 4 首先使用实体框架代码保存数据,asp.net-mvc-4,c#-4.0,entity-framework-6,Asp.net Mvc 4,C# 4.0,Entity Framework 6,我使用的是ASP.NET MVC Razor实体框架代码第一个C 甲级 public class Om_Category { [Key] public int CategoryID { get; set; } public String CategoryName { get; set; } public String CategorySanitized { get; set; } public Boolean IsActive { get; set; }

我使用的是ASP.NET MVC Razor实体框架代码第一个C

甲级

public class Om_Category
{
    [Key]
    public int CategoryID { get; set; }
    public String CategoryName { get; set; }
    public String CategorySanitized { get; set; }
    public Boolean IsActive { get; set; }

    public DateTime CreationDate { get; set; }
}
乙级

public class Om_CategorySkills
{
    [Key]
    public Int32 SkillID { get; set; }
    public String Skill { get; set; }
    public String SkillSanitized { get; set; }
    public DateTime CreationDate { get; set; }
    public Boolean IsActive { get; set; }

    public Om_Category Category { get; set; }
}
当我尝试为表Om_CategorySkills创建记录时。上面说 无法在Om_类别表中保存重复值

发生这种情况是因为我正在发送Om_CategorySkills类对象中的Om_Category类对象,因为Om_Category类中有一些字段是必需的


因此,我也在Om_CategorySkills类对象中传递Om_Category类对象。有没有办法解决此问题?

您的导航属性似乎不正确。。你能试试吗我没试过

public class Om_Category
{
    [Key]
    public int CategoryID { get; set; }
    public String CategoryName { get; set; }
    public String CategorySanitized { get; set; }
    public Boolean IsActive { get; set; }
    public DateTime CreationDate { get; set; }

    public virtual Om_CategorySkills CategorySkills{ get; set; }
}


 public class Om_CategorySkills
 {
     [Key]
     public Int32 SkillID { get; set; }
     public String Skill { get; set; }
     public String SkillSanitized { get; set; }
     public DateTime CreationDate { get; set; }
     public Boolean IsActive { get; set; }

     public int CategoryID {get;set;}
     public virtual Om_Category Category { get; set; }
 }
我发现您的Om_CategorySkills对象缺少一个Int32 Om_CategoryId属性,无法用作外键。我还将向导航属性类别添加一个虚拟修改器,以允许延迟加载

我认为可能是这样的情况,即您的新技能/编辑技能中的类别对象已在数据库中,但不是上下文检索到的对象,因此上下文认为您正在尝试使用现有类别的Id保存新类别


您不应尝试将技能对象与类别对象一起保存,而不进行任何更改。否则,类别对象应该是附加到上下文的对象。

一个类别可以有多个技能,一个技能将有一个类别