我想创建一个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; }
}
文件夹设置对象可能有更多属性我只是简化了它。我得到的错误是:
无法确定相关操作的有效排序。由于外键约束,模型要求或存储生成的值,可能存在依赖关系。
答案 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>