Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Entity framework 使用实体框架创建树_Entity Framework_Tree - Fatal编程技术网

Entity framework 使用实体框架创建树

Entity framework 使用实体框架创建树,entity-framework,tree,Entity Framework,Tree,我创建这些类是为了创建一个树(用户拥有根) 但是实体框架(代码优先)不保存父id (在用户类中,按预期保存“根目录”) 当我手动创建表时(首先是Database),实体框架将父id保存为int,而不是“Node” 我能做什么?您没有正确实现ForeignKey注释。您需要执行以下操作: [Key] public int Id { get; set; } public string Name { get; set; } public int ParentID { get; set; } [Fo

我创建这些类是为了创建一个树(用户拥有根)

但是实体框架(代码优先)不保存父id (在用户类中,按预期保存“根目录”)

当我手动创建表时(首先是Database),实体框架将父id保存为int,而不是“Node”


我能做什么?

您没有正确实现
ForeignKey
注释。您需要执行以下操作:

[Key]
public int Id { get; set; }
public string Name { get; set; }

public int ParentID { get; set; }

[ForeignKey("ParentID")]
public Node Parent { get; set; }

上面的代码将允许您拥有单独的
节点
,然后可以将
父节点分配给它们。每个
节点
都需要有自己的ID以及其父节点的ID。
ForeignKey
注释必须指向父ID,而不是节点的ID。

为什么称它为
Parent\u ID
,而不仅仅是
Parent
?我已经有一段时间没有使用EF了,但也许有一些命名属性的约定?
[Key]
public int Id { get; set; }
public string Name { get; set; }

public int ParentID { get; set; }

[ForeignKey("ParentID")]
public Node Parent { get; set; }