我在我的应用程序中使用EF
我得到以下错误:
错误1错误3002:从行开始的映射片段有问题1131:运行时可能违反表CTIDS的键(CTIDS。CTID,载波:列(CTIDS)。CTID, CTIDS.Carrier)映射到设置CTIDS的属性(CTIDS。CTID1, CTIDS.Carrier)上但它们不构成EntitySet的关键属性(CTIDS。AppVersion CTIDS。CTID1 CTIDS.Carrier)。D: 老妈 Server ClientServices 开发 ClientService1.6 Conduit.Mam.ClientService.DAL.EntityFramework MamModel。edmx 1132 15 Conduit.Mam.ClientService.Common.EntityFramework
双击错误导致edmx
中的此部分:
<EntitySetMapping Name="CTIDS">
<EntityTypeMapping TypeName="MaMDBModel.CTID">
<MappingFragment StoreEntitySet="CTIDS">
<ScalarProperty Name="Carrier" ColumnName="Carrier" />
<ScalarProperty Name="AppVersion" ColumnName="AppVersion" />
<ScalarProperty Name="CTID1" ColumnName="CTID" />
</MappingFragment>
</EntityTypeMapping>
我有一个包含composite_PK的表
这正是我的edmx
所反映的:
<EntityType Name="CTIDS"> <Key> <PropertyRef Name="CTID" /> <PropertyRef Name="Carrier" /> </Key> <Property Name="CTID" Type="varchar" Nullable="false" MaxLength="50" /> <Property Name="AppVersion" Type="varchar" Nullable="false" MaxLength="50" /> <Property Name="Carrier" Type="int" Nullable="false" /> </EntityType>
您只发布了描述商店的实体,而没有发布映射到商店实体的概念实体。从异常消息中可以看出,概念实体有一个由3个属性(CTIDS)组成的组合键。AppVersion CTIDS。CTID1, CTIDS. carrier),而商店实体(您展示的那个)有一个由2个属性组成的复合实体(CTIDS)。