我有一个数据库,里面已经装满了包含数据的表格。我所看到的是所有表都有 5 个共同的列:
- Id-long, key
- 已删除,位
- DateDeleted,SmallDatetime
- 上次更新,小日期时间
- 上次更新用户,nvarchar
现在,有一些常见的操作是基于那些目前到处复制的字段来完成的
我想要的是创建一个只包含这些公共(public)属性和对它们执行的方法的基类,并使所有其他实体都从中派生。
我不需要或不想在数据库中拥有这个基础实体本身,这只是我想帮助编码部分的东西。
问题是这是数据库优先,我无法更改数据库,所以我只需要使用 POCO 类和 EDMX。
我怎样才能做到这一点?
最佳答案
您正在寻找的是类似于 TPH ( http://msdn.microsoft.com/en-us/data/jj618292.aspx ) 的东西
但是我认为这对您不起作用,因为您有多个现有表。
一种可能的解决方案是:
- 创建一个名为“BaseModel”(或类似名称)的基类
- 将这些属性添加为抽象以强制覆盖它们
- 在该基类中创建一个方法来填充这些字段,或创建一个将 BaseModel、IsDeleted、LastUpdated、LastUpdatedUser 作为参数的助手并更新模型。
- 扩展model.tt文件生成的分部类,继承BaseModel类。
谢谢, 戴夫
关于c# - Entity Framework 数据库优先 如何更改实体以使其从基类派生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19021991/