C#Entity Framework 6 - 如何处理具有相同表名的多个模式

时间:2016-10-13 11:54:28

标签: c# entity-framework ef-database-first

我正在使用C#Entity Framework 6,我有一个包含多个模式的数据库,在这些模式中我有相同名称的表。例如:

  1. Rates.Hotel
  2. Availability.Hotel
  3. 我有一个项目用于具有这种结构的所有数据库对象:

    Project Name = Storm.API.Data
    In this project I have folders with the schema names: "Availability", "Rates".
    In each folder I have the proper 'edmx' file.
    

    当我运行我的项目时,我收到此错误:

    Schema specified is not valid. Errors: 
    
    The mapping of CLR type to EDM type is ambiguous because multiple CLR types match the EDM 
    type 'Hotel'. Previously found CLR type 'Storm.API.Data.Rates.Hotel', 
    newly found CLR type 'Storm.API.Data.Availability.Hotel'.
    

    我提出的唯一解决方案是将模式分离到不同的项目,但由于我有两个以上的模式,我不想为此创建这么多项目。

    是否有其他解决方案可以让我在同一个项目下拥有所有模式而没有此错误?

1 个答案:

答案 0 :(得分:1)

你可以:

  1. 在代码中为每个人提供不同的班级名称
  2. 使用2个不同的DbContext类,实体具有不同的命名空间。你是否将它放在另一个项目中取决于你,但不是必需的。
  3. 不确定这是否有效,但值得一试:为每个架构创建一个命名空间,并将所有内容都放在1个DbContext中。