C#实体框架6-如何处理具有相同表名的多个模式
我使用的是C#Entity Framework 6,我有一个具有多个模式的数据库,在这些模式中我有同名的表。例如:C#实体框架6-如何处理具有相同表名的多个模式,c#,entity-framework,ef-database-first,C#,Entity Framework,Ef Database First,我使用的是C#Entity Framework 6,我有一个具有多个模式的数据库,在这些模式中我有同名的表。例如: 价格。酒店 酒店 我的所有数据库对象都有一个项目,其结构如下: 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. 当我运行
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'.
我提出的唯一解决方案是将模式分离到不同的项目中,但是因为我有两个以上的模式,所以我不想为此创建这么多的项目
是否有另一种解决方案可以使我在同一个项目下拥有所有架构而不会出现此错误?您可以:
可以在模型浏览器上编辑每个架构的实体类型名称。因此,您有Availability\u Hotel on Availability schema和Rates\u Hotel on Rates schema类型。我认为有单独的项目是一个很好的解决方案,因为有不同的模式定义您的域,最好通过有单独的项目来明确此域分离。1。在自动生成的代码上手动更改类名是个坏主意,因为在更新模型时类名将丢失。2.在同一个数据库中使用2 DbContext不起作用。3.这是我一开始做的。