Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
Sql server 2008 如何在Entity Framework 4.2中的关联表中设置外键_Sql Server 2008_Entity Framework 4_Ef Code First - Fatal编程技术网

Sql server 2008 如何在Entity Framework 4.2中的关联表中设置外键

Sql server 2008 如何在Entity Framework 4.2中的关联表中设置外键,sql-server-2008,entity-framework-4,ef-code-first,Sql Server 2008,Entity Framework 4,Ef Code First,考虑定义为以下内容的表: public class SkillInteraction { // Primary Key [Key] public int SkillInteractionId { get; set; } // record type (offensive, defensive) public int SkillTypeId { get; set; } //foreign key to Skill table pu

考虑定义为以下内容的表:

    public class SkillInteraction
{
    // Primary Key
    [Key]
    public int SkillInteractionId { get; set; }

    // record type (offensive, defensive)
    public int SkillTypeId { get; set; }

    //foreign key to Skill table
    public int ParentSkillId { get; set; }

    //foreign key to Skill table
    [ForeignKey("ParentSkillId")]
    public virtual Skill ParentSkill { get; set; }

    //foreign key to Skill table
    public int SkillId { get; set; }

    // list of skills associated with the parent skill
    [ForeignKey("SkillId")]
    public virtual Skill Skill { get; set; }

    public decimal Ratio { get; set; }
}    
public class Skill
    {
        public int SkillId { get; set; }
        // record type (offensive, defensive)
        public int SkillTypeId { get; set; }
        public string SkillName { get; set; }
    }
我相当确定我需要使用流畅的语法来映射这种关系,只是不确定如何进行。如果我保持原样,我将是一个外键错误,导致循环

Introducing FOREIGN KEY constraint 'SkillInteraction_Skill' on table 'SkillInteractions' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint. See previous errors.

那么,如何在EF 4.2中设置此关系,以便SQL server不会抱怨?

您需要通过fluent api指定此关系,默认情况下,EF将打开
WillCascadeOnDelete
选项,您需要将其关闭。这不能通过注释来完成


我在我的博客上写了这件事。希望这有帮助。

您需要通过fluent api指定关系,默认情况下,ef将打开
WillCascadeOnDelete
选项,您需要将其关闭。这不能通过注释来完成


我在我的博客上写了这件事。希望这有帮助。

我的回答解决了你的问题吗?我的回答解决了你的问题吗?