1

我在我的应用程序中使用 EF

我收到以下错误:

错误 1 ​​错误 3002:从第 1131 行开始映射片段时出现问题:表 CTIDS 的键(CTIDS.CTID、CTIDS.Carrier)的潜在运行时违规:列(CTIDS.CTID、CTIDS.Carrier)映射到 EntitySet CTIDS 的属性(CTIDS.Carrier)。 CTID1、CTIDS.Carrier)在概念方面,但它们不构成 EntitySet 的关键属性(CTIDS.AppVersion、CTIDS.CTID1、CTIDS.Carrier)。D:\MaM\Server\ClientServices\Dev\ClientService 1.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>
4

1 回答 1

1

您只发布了描述商店的实体,但没有发布映射到商店实体的概念实体。从异常消息看来,概念实体具有由 3 个属性(CTIDS.AppVersion、CTIDS.CTID1、CTIDS.Carrier)组成的复合键,而商店实体(您显示的那个)具有由 2 个属性组成的复合实体(CTIDS.CTID, CTIDS.Carrier) 这就是异常的原因。

于 2013-03-12T15:49:01.273 回答