我从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>
答案 0 :(得分:0)
我对此进行了排序。由于某种原因,属性的顺序产生了不同。这有效!
<Property Name="CitiCode" Type="String" MaxLength="15" FixedLength="false" Unicode="false" Nullable="false" />