gpt4 book ai didi

entity-framework - Entity Framework : Inheritance, 更改对象类型

转载 作者:行者123 更新时间:2023-12-03 12:00:32 25 4
gpt4 key购买 nike

假设我在模型中有 2 个类:User(映射到 USERS 表)和 PrivilegedUser(继承 User,附加信息存储在 PRIVILEGEDUSERS 表中)。

现在,我在 USERS(和 User 实例)中有一行,需要将该用户转换为 PrivilegedUser(即在 PRIVILEGEDUSERS 中创建一个具有相同 Id 的记录)。有没有办法在没有删除/插入的情况下做到这一点?

问题是您在模型中没有 PRIVILEGEDUSERS 表示,因此您不能只创建 PrivilegedUser 的那一部分。

这只是一个例子。 PrivilegedUser 可能有一些折扣或个人经理或其他什么 另外到普通用户属性。同时,还有其他表需要引用用户,而不管具体的用户类型。我已经使用 Table-per-Type 继承模式实现了它。在数据库级别,将用户从一种类型转换为另一种类型非常简单(您只需要从扩展表中插入或删除记录)。但是在 EF 中,您只有 UserSet,它同时存储 User 和 PrivilegedUser 对象。这就是为什么我问是否可以替换 现有 具有 PrivilegedUser 的用户对象保留现有 Id 并且不从 USERS 表中删除记录。

最佳答案

不,你不能。

正如 this article 所解释的, EF (3.5) 不支持此功能。您必须使用存储过程来完成此操作。

关于entity-framework - Entity Framework : Inheritance, 更改对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1239504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com