0
我希望在第二個表中的唯一非空屬性上添加外鍵。這裏怎麼看起來像:唯一索引屬性上的實體框架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; }
}
這裏是模型構造器:
modelBuilder.Entity<T_Measurements>()
.HasMany(x => x.T_AlarmTresholds)
.WithRequired(x => x.Measurement)
.HasForeignKey(x => x.MeasurementGuid);
實體框架拋出錯誤,而SQL服務器接受此解決方案。這是錯誤的Visual Studio調試時:
{「模型中檢測到一個或多個驗證錯誤 代:\ r \ n \ r \ nT_Measurements_T_AlarmTresholds_Source_T_Measurements_T_AlarmTresholds_Target: :該類型的從屬角色的所有屬性參考 約束必須與 主體角色中相應的屬性類型相同。實體 'T_AlarmTresholds'上的屬性'MeasurementGuid'類型與實體 'T_Measurements'中的屬性'ID'類型不匹配參考約束 'T_Measurements_T_AlarmTresholds'。\ r \ n「}
的確但數據庫已經被設計爲使用GUID的外鍵依賴 – miechooy
@miechooy看我的更新 - 主要觀點代表 - 你不把外鍵屬性的依賴屬性。 –