将 child 节点添加到现有 parent Entity Framework
Add child node to existing parent Entity Framework
假设我有两个 类
[Table("User")]
public class User
{
public string Name { get; set; }
public string Surname { get; set; }
}
[Table("Manager ")]
public class Manager : User
{
public int Title {get;set;}
}
我使用 entity framework 6.1.2 和 table 每种类型的方法来保存实体。
现在我想添加一个 child(即经理),但是这个 child.
有一个 parent(即用户)
那我该怎么办
我如何只插入 child 节点。
您正在混合一些 OO 原则。
管理员是用户。
这意味着如果您向系统添加一个管理员,您实际上也在添加一个用户。如果不是管理员,您可以将用户添加到系统中。
添加管理员将同时更新用户 table 和管理员 table。添加不是管理员的用户只会在用户 table 中添加一个条目。
所以综上所述。所有普通用户和管理员用户都将出现在用户 table 中。但是对于同时也是manager的用户,manager中也会有一条记录table。属于经理的信息分布在数据库中的 2 table 秒。在 EF 中,因为您使用了继承,所以您只使用了一个管理器实例,但因为它是从用户派生的,所以您也可以访问用户属性。关系概念和 OO 概念不一样,EF 为您完成这些不同概念之间的映射,因此称为对象关系映射。
假设我有两个 类
[Table("User")]
public class User
{
public string Name { get; set; }
public string Surname { get; set; }
}
[Table("Manager ")]
public class Manager : User
{
public int Title {get;set;}
}
我使用 entity framework 6.1.2 和 table 每种类型的方法来保存实体。
现在我想添加一个 child(即经理),但是这个 child.
有一个 parent(即用户)那我该怎么办 我如何只插入 child 节点。
您正在混合一些 OO 原则。 管理员是用户。 这意味着如果您向系统添加一个管理员,您实际上也在添加一个用户。如果不是管理员,您可以将用户添加到系统中。 添加管理员将同时更新用户 table 和管理员 table。添加不是管理员的用户只会在用户 table 中添加一个条目。 所以综上所述。所有普通用户和管理员用户都将出现在用户 table 中。但是对于同时也是manager的用户,manager中也会有一条记录table。属于经理的信息分布在数据库中的 2 table 秒。在 EF 中,因为您使用了继承,所以您只使用了一个管理器实例,但因为它是从用户派生的,所以您也可以访问用户属性。关系概念和 OO 概念不一样,EF 为您完成这些不同概念之间的映射,因此称为对象关系映射。