EF4:主要角色引用的属性必须与密钥完全相同

时间:2015-08-12 09:45:14

标签: entity-framework entity-framework-4

我从Entity Framework v4收到以下错误:

Principal Role Unit引用的属性必须与关系dbSamplingModel.UnitSource的关系约束中的Principal Role引用的EntityType dbSamplingModel.Unit的键完全相同。确保在主体角色中指定了所有关键属性。

这是我的edmx的相关部分。据我所知,我的单位是由CitiCode键入的,而我在关系中使用的是关键。

<EntityType Name="Unit">
  <Key>
    <PropertyRef Name="CitiCode" />
  </Key>
  <Property Name="CitiCode" Type="String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="false" />
  <Property Name="SedolCode" Type="String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="false" />
  <Property Name="ISINCode" Type="String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="false" />
  <Property Name="MexCode" Type="String" Nullable="false" MaxLength="15" FixedLength="false" Unicode="false" />
  <NavigationProperty Name="Sources" Relationship="dbSamplingModel.UnitSource" FromRole="Unit" ToRole="Source" />
</EntityType>
<Association Name="UnitSource">
  <End Type="dbSamplingModel.Unit" Role="Unit" Multiplicity="1" />
  <End Type="dbSamplingModel.Source" Role="Source" Multiplicity="*" />
  <ReferentialConstraint>
    <Principal Role="Unit">
      <PropertyRef Name="CitiCode" />
    </Principal>
    <Dependent Role="Source">
      <PropertyRef Name="CitiCode" />
    </Dependent>
  </ReferentialConstraint>
</Association>

1 个答案:

答案 0 :(得分:0)

我对此进行了排序。由于某种原因,属性的顺序产生了不同。这有效!

<Property Name="CitiCode" Type="String" MaxLength="15" FixedLength="false" Unicode="false" Nullable="false" />