2番目のテーブルの一意のNULLではない属性に外部キーを追加したいとします。ここではそれがどのように見えるか:ここでユニークインデックスプロパティのEntity Framework FK
public class T_AlarmTresholds
{
[Key]
public int Id { get; set; }
....
....
public Guid MeasurementGuid { get; set; }
[ForeignKey("MeasurementGuid")]
public virtual T_Measurements Measurement { get; set; }
}
public partial class T_Measurements
{
public int Id { get; set; }
[Index("UC_Guid", IsUnique = true)]
public Guid GUID { get; set; }
}
モデルビルダーです:SQL Serverは、このソリューションを受け入れながら
modelBuilder.Entity<T_Measurements>()
.HasMany(x => x.T_AlarmTresholds)
.WithRequired(x => x.Measurement)
.HasForeignKey(x => x.MeasurementGuid);
エンティティフレームワークでエラーが発生します。
{」は、一つ以上の検証エラーをモデル 生成中に検出された:ここでデバッグ中Visual Studioでエラーがある\ R \ n \ R \ nT_Measurements_T_AlarmTresholds_Source_T_Measurements_T_AlarmTresholds_Target: :の依存ロールのすべてのプロパティのタイプ の制約は、 プリンシパルロールの対応するプロパティタイプと同じでなければなりません。エンティティ のプロパティ 'MeasurementGuid'のタイプ 'T_AlarmTresholds'がエンティティ のプロパティ 'ID'のタイプと一致しません。 'T_Measurements'参照制約 'T_Measurements_T_AlarmTresholds'。\ r \ n "}
実際には、データベースはすでに外部キー依存性のためにguidを使用しています。 – miechooy
@miechooyは私の更新を参照してください - 主なポイントです - 依存性プロパティーに外部キー属性を入れません。 –