0

我有这些方法类:

public class Links
{
    [Key]
    public int LID { get; set; }
    public string Link { get; set; }
    public string Type { get; set; }
    public string Filename { get; set; }
    public virtual int RessourceId { get; set; }
}

public class Ressource
{
    [Key]
    public int RessourceId { get; set; }
    public string TitreR { get; set; }
    public string Desc { get; set; }
    //public int Position { get; set; }
    public int Rating { get; set; }
    public string Tags { get; set; }
    public virtual int SectionId { get; set; }
    public virtual int UserId { get; set; }
    public virtual ICollection<Links> Links { get; set; }

}

public class Section
{
    [Key]
    public int SectionId { get; set; }
    public string Titre { get; set; }
    public virtual ICollection<Tags> Tags { get; set; }

    public virtual ICollection<Ressource> Ressources { get; set; }
    //public Section() { this.Tag=new List<string>(); }
}

当我想删除一个资源时,我有这个错误:

操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。

错误行:

_db.Entry(R).State = EntityState.Deleted;
_db.SaveChanges();    // error line

PS:在我将 Filename 属性添加到 Links 类之前它正在工作......知道如何解决它吗?谢谢

4

1 回答 1

0

使外键可以为空(即将其类型从 更改intint?):

public virtual int? RessourceId { get; set; }

这意味着您可以拥有没有资源的链接。

于 2013-08-19T12:56:00.707 回答