gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:15:52 26 4
gpt4 key购买 nike

我已经读过 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 吗?如果是,我的代码难道不能正常工作吗?

最佳答案

它应该可以工作。
如果您使用不同的数据库(连接),则没有任何问题。
如果你使用同一个数据库,你有两种不同的场景:

  • 如果您的类具有相同的属性(或者是同一个类,您可以在 2 个不同的场景中使用相同的类),您可以为两个类使用相同的表,或者您可以指定不同的表以具有不同的实体。
  • 如果您的类(class)不同,您应该为这些类(class)指定不同的表名。您还可以创建一个表,其中包含类所需的所有列并禁用迁移。

关于c# - 类型 'Module1.MyEntity' 和类型 'Module2.MyEntity' 都具有相同的简单名称 'MyEntity',因此不能在同一模型中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39152713/

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