Rus*_*ian 13 inheritance entity-framework
假设我在模型中有2个类:User(映射到USERS表)和PrivilegedUser(继承User,其他信息存储在PRIVILEGEDUSERS表中).
现在,我在USERS(和User的实例)中有一行,需要将该用户转换为PrivilegedUser(即在PRIVILEGEDUSERS中创建具有相同Id的记录).有没有办法在没有删除/插入的情况下执行此操作?
问题是您在模型中没有PRIVILEGEDUSERS表示,因此您不能仅创建PrivilegedUser的那部分.
这只是一个例子.除普通用户属性外,PrivilegedUser可能还有一些折扣或个人经理或其他任何东西.同时,无论具体的用户类型如何,还有其他表需要引用用户.我已经使用Table-per-Type继承模式实现了它.在数据库级别,将用户从一种类型转换为另一种类型非常简单(您只需要从扩展表中插入或删除记录).但在EF中,您只有UserSet,它存储User和PrivilegedUser对象.这就是为什么我要问是可以用PrivilegedUser 替换现有的 User对象来保留现有的Id并且不从USERS表中删除记录.
您有两个代表用户的表似乎是错误的。
拥有一个 Users 表(适用于所有用户),然后拥有一个 UserPrivileges 表来代表他们可以执行的操作不是更好吗?这样,就不需要删除/插入,并且您可以为用户引用一张表。
第三个表可用于表示实际权限。
用户
ID 用户名...
用户权限
用户 ID 权限 ID
权限
ID 描述
| 归档时间: |
|
| 查看次数: |
3597 次 |
| 最近记录: |