“Module1.MyEntity”类型和“Module2.MyEntity”类型都具有相同的简单名称“MyEntity”,因此不能在同一模型中使用

时间:2016-08-25 18:49:39

标签: c# entity-framework

我已经读过this question并且知道它是版本6中EF的限制,但是如果我理解正确的话,只有在映射了两个版本的MyEntity时才会发生这种情况抛出相同的DbContext ,这不是我的情况。

我有:

public class Module1Context : DbContext
{
    public DbSet<Module1.MyEntity> MyEntities { get; set; }

    ...
}

然后在另一个文件中:

public class Module2Context : DbContext
{
    public DbSet<Module2.MyEntity> MyEntities { get; set; }

    ...
}

我在网上找到的所有对此问题的引用都发生在使用相同 DbContext的人身上。我的问题是,当他们说“不能在同一个模型中使用”时,模型是什么意思?不是DbContext吗?如果是,我的代码不应该正常工作吗?

1 个答案:

答案 0 :(得分:0)

它应该工作。
如果您使用的是不同的数据库(连接),则不会有任何问题 如果您使用的是同一个数据库,则有两种不同的方案:

  • 如果您的类具有相同的属性(或者是同一个类,您可以在两个不同的方案中拥有相同的类),则可以为这两个类使用相同的表,或者可以指定不同的表以具有不同的实体。 / LI>
  • 如果您的类不同,则应为类指定不同的表名。您还可以创建一个包含类所需的所有列的表,并禁用迁移。