У меня есть таблица для авторов с ПК AuthorID
.Ошибка Entity Framework 3021: сопоставляется с несколькими концептуальными свойствами стороны
У меня тогда есть таблица под названием AuthoritativeAuthors с PK AuthorID
.
AuthoritativeAuthor.AuthorID - это внешний ключ, указывающий на авторов.Авторидор. AuthorID в Авторах может или не может появляться в AuthoritativeAuthors.
Здесь ошибка я получаю Error 3021: Problem in mapping fragments starting at line 4365:Each of the following columns in table AuthoritativeAuthors is mapped to multiple conceptual side properties: AuthoritativeAuthors.AuthorID is mapped to <FK_AuthoritativeAuthors_Authors.AuthoritativeAuthor.AuthorID, FK_AuthoritativeAuthors_Authors.Author.AuthorID>
Вот весь код в EDMX, что кажется уместным.
Модели хранения
<EntityType Name="Authors">
<Key>
<PropertyRef Name="AuthorID" />
</Key>
<Property Name="AuthorID" Type="int" Nullable="false" />
<Property Name="Name" Type="nvarchar" MaxLength="254" />
</EntityType>
<EntityType Name="AuthoritativeAuthors">
<Key>
<PropertyRef Name="AuthorID" />
</Key>
<Property Name="AuthoritativeAuthorID" Type="int" Nullable="false" />
<Property Name="AuthorID" Type="int" Nullable="false" />
</EntityType>
<Association Name="FK_AuthoritativeAuthors_Authors">
<End Role="AuthoritativeAuthor" Type="WCDBModel.Store.AuthoritativeAuthors" Multiplicity="0..1" />
<End Role="Author" Type="WCDBModel.Store.Authors" Multiplicity="1" />
<ReferentialConstraint>
<Principal Role="Author">
<PropertyRef Name="AuthorID" />
</Principal>
<Dependent Role="AuthoritativeAuthor">
<PropertyRef Name="AuthorID" />
</Dependent>
</ReferentialConstraint>
</Association>
Концептуальные модели
<EntitySet Name="AuthorSet" EntityType="WCDBModel.Author" />
<EntitySet Name="AuthoritativeAuthorSet" EntityType="WCDBModel.AuthoritativeAuthor" />
<AssociationSet Name="FK_AuthoritativeAuthors_Authors" Association="WCDBModel.FK_AuthoritativeAuthors_Authors">
<End Role="Author" EntitySet="AuthorSet" />
<End Role="AuthoritativeAuthor" EntitySet="AuthoritativeAuthorSet" />
</AssociationSet>
<EntityType Name="Author">
<Key>
<PropertyRef Name="AuthorID" />
</Key>
<Property Name="AuthorID" Type="Int32" Nullable="false" />
<Property Name="Name" Type="String" Nullable="true" />
<NavigationProperty Name="AuthoritativeAuthors" Relationship="WCDBModel.FK_AuthoritativeAuthors_Authors" FromRole="Author" ToRole="AuthoritativeAuthor" />
</EntityType>
<Association Name="FK_AuthoritativeAuthors_Authors">
<End Type="WCDBModel.Author" Role="Author" Multiplicity="1" />
<End Type="WCDBModel.AuthoritativeAuthor" Role="AuthoritativeAuthor" Multiplicity="0..1" />
</Association>
<EntityType Name="AuthoritativeAuthor">
<Key>
<PropertyRef Name="AuthorID" />
</Key>
<Property Type="Int32" Name="AuthorID" Nullable="false" />
<Property Type="Int32" Name="AuthoritativeAuthorID" Nullable="false" />
<NavigationProperty Name="Author" Relationship="WCDBModel.FK_AuthoritativeAuthors_Authors" FromRole="AuthoritativeAuthor" ToRole="Author" />
</EntityType>
Mapping
<EntitySetMapping Name="AuthorSet">
<EntityTypeMapping TypeName="IsTypeOf(WCDBModel.Author)">
<MappingFragment StoreEntitySet="Authors">
<ScalarProperty Name="Name" ColumnName="Name" />
<ScalarProperty Name="AuthorID" ColumnName="AuthorID" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="AuthoritativeAuthorSet">
<EntityTypeMapping TypeName="IsTypeOf(WCDBModel.AuthoritativeAuthor)">
<MappingFragment StoreEntitySet="AuthoritativeAuthors">
<ScalarProperty Name="AuthoritativeAuthorID" ColumnName="AuthoritativeAuthorID"/>
<ScalarProperty Name="AuthorID" ColumnName="AuthorID" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
<AssociationSetMapping Name="FK_AuthoritativeAuthors_Authors" TypeName="WCDBModel.FK_AuthoritativeAuthors_Authors" StoreEntitySet="AuthoritativeAuthors">
<EndProperty Name="AuthoritativeAuthor">
<ScalarProperty Name="AuthorID" ColumnName="AuthorID" />
</EndProperty>
<EndProperty Name="Author">
<ScalarProperty Name="AuthorID" ColumnName="AuthorID" />
</EndProperty>
<Condition ColumnName="AuthorID" IsNull="false" />
</AssociationSetMapping>
Любая помощь в поиске причины этой ошибки будут оценены.
какая версия сущностной схемы вы используете, 3.5 или 4 и выше? –
[Ответил] [1] в том же [вопрос] [2], надеюсь, это поможет. [1]: http://stackoverflow.com/a/28759761/1638622 [2]: http://stackoverflow.com/questions/25177720/entityframework-mapping-issue/28759761#28759761 –