Согласно заголовку, сценарий: один проект c-sharp, с двумя папками, каждая из которых содержит два контекста EDMX ...
Myproj \ NSOne \ ModelOne.edmx, Myproj \ NSTwo\ ModelTwo.edmx;
Обычно это работает хорошо, пока вы не используете одну и ту же таблицу в обоих контекстах.Нет проблем во время разработки, классы сущностей генерируются в разных пространствах имен, только во время выполнения выдается следующая ошибка:
Указанная схема недопустима.Ошибки: Отображение типа CLR в тип EDM неоднозначно, потому что несколько типов CLR соответствуют типу EDM 'TB_MyTable'.Ранее обнаруженный тип CLR «Namespace.NSOne.TB_MyTable», недавно обнаруженный тип CLR «Namespace.NSTwo.CIXModel.TB_MyTable».
При поиске ответов я столкнулся с проблемой Github, которая довольно симпатична.Много сказать "это слишком сложно / не тривиально", мы не будем исправлять.https://github.com/aspnet/EntityFramework6/issues/362
Однако, обходной путь - отредактировать файл EDMX, как упоминалось в этом выпуске github.
<ConceptualModels>
<Schema Namespace="ConsoleApplication33"
Alias="Self"
annotation:UseStrongSpatialTypes="false"
xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation"
xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation"
xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
<EntityType Name="Person"
customannotation:ClrType="MyApp.Person, MyApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
<Property Name="Name" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" />
</EntityType>
<EntityContainer Name="Town" customannotation:UseClrTypes="true">
<EntitySet Name="People" EntityType="Self.Person" />
</EntityContainer>
</Schema>
</ConceptualModels>
Моя проблема / вопрос заключается в том, что в моем проекте приведенный выше фрагмент xml с«Концептуальных моделей» нигде не найти?!
Куда мне вообще начать искать?В моих файлах edmx (через visual studio) я могу видеть только, например,
- ModelOne.edmx
- ModelOne.Context.tt
- ModelOne.Designer.csharp
- ModelOne.edmx.diagram
- ModelOne.tt
EntityFramework.dll, EntityFramework.SqlServer.dll имеют следующие версии:
Версия файла: 6.2.61023.0 Версия продукта: 6.2.0-61023