Entity Framework 6 从同一个实体对象创建两个表

Posted

技术标签:

【中文标题】Entity Framework 6 从同一个实体对象创建两个表【英文标题】:Entity Framework 6 Creating Two table from the same entity object 【发布时间】:2015-11-03 07:01:31 【问题描述】:

我想知道是否可以从一个已定义的实体对象类创建两个表实例。

例子:

public class EntityA()

    public String name get; set;
    public String value get; set;


public class MyDbConext : DbContext

    public DbSet<EntityA> instance1 get; set; 
    public DbSet<EntityA> instance2 get; set; 

我要做的是创建两个具有不同表名的实体 A 实例。代码优先实体框架有可能吗?我觉得必须创建另一个扩展实体 EntityA 的类来创建同一实体的另一个实例似乎很乏味。

期望的输出:

从 EntityA 类创建“Instance1_Table” 从 EntityA 类创建“Instance2_Table”

DBConext 中的代码会抛出异常。

任何建议表示赞赏, 谢谢, D

【问题讨论】:

【参考方案1】:

在一个DbContext 中不能有多个DbSet 指向同一个类。您的选择是:

创建具有相同属性的新类 继承 使用不同的DBContexts

【讨论】:

你知道他们为什么选择这个设计吗?在我看来这没有任何意义,特别是如果您可以通过添加一次额外的继承层来规避这一点..

以上是关于Entity Framework 6 从同一个实体对象创建两个表的主要内容,如果未能解决你的问题,请参考以下文章

在 Entity Framework 6 中使用 MySQL 和 MSSQL

《Entity Framework 6 Recipes》翻译系列 -----第一章 开始使用实体框架之使用介绍 (转)

Entity Framework 6 Recipes 2nd Edition(12-5)译 -> 自动删除相关联实体

实体未使用 Entity Framework 6 在数据库中更新

《Entity Framework 6 Recipes》中文翻译系列 (13) -----第三章 查询之使用Entity SQL

在 Entity Framework 6 中保存分离的实体