Asp.net无法确定依赖操作的有效排序

时间:2015-08-28 09:39:02

标签: c# asp.net entity-framework

我想创建一个Folder对象,其中包含文件和其他文件夹,并且它本身也可能是另一个文件夹的一部分。这就是我所拥有的:

public class Folder
{
    public Guid Id {get;set;}
    public string Title { get; set; }

    public virtual FolderSettings FolderSettings { get; set; }

    private ICollection<FolderSettings> _folders { get; set; }
    public ICollection<FolderSettings> Folders
    {
        get { return _folders ?? (_folders = new HashSet<FolderSettings>()); }
        set { _folders = value; }
    }

    private ICollection<Files> _files{ get; set; }
    public ICollection<File> Files
    {
        get { return _files?? (_files = new HashSet<File>()); }
        set { _files= value; }
    }
}

public class FolderSettings
{
    [Key, ForeignKey("MyFoder")]
    public Guid FolderId{ get; set; }
    public virtual Folder MyFoder{ get; set; }

    [ForeignKey("RootFolder")]
    public Guid? RootFolderId { get; set; }
    public virtual Folder RootFolder { get; set; }        
}

文件夹设置对象可能有更多属性我只是简化了它。我得到的错误是:

无法确定相关操作的有效排序。由于外键约束,模型要求或存储生成的值,可能存在依赖关系。

1 个答案:

答案 0 :(得分:1)

编辑:

EF没有发现

.profile-pic{
    float:right;
    margin-right:50px;
    height:160px;
    width:140px;
}

是外键public virtual FolderSettings FolderSettings { get; set; } 的反转。在它上面添加这一行,您的模型将被理解:

MyFoder

在FolderSettings中,添加属性

[InverseProperty("MyFoder")]

并更正拼写public Folder Folder { get; set; } 。 EF将开始工作。

请注意,在类文件夹中,“文件夹”属性的类型为ForeignKey('Foder'),但根据您的解释,ICollection<FolderSettings>似乎是您的意思

以下是代码:

ICollection<Folder>