好吧,我正在嘗試對我的表應用檢查約束!所以我有國家代表,每個國家都應該有一個代表,一個Individual或一個,Organization但不是兩者都有;例如,如果 anIndividual代表國家,則OrganizationId應該是null。我如何使用 Code First Data Annotations 或是否有任何其他方式應用此檢查約束。這是我的代碼: class CountryRepresentative{ [Column(Order = 0), Key, ForeignKey("Incident")] public Guid CountryId { get; set; } [Column(Order = 1), ForeignKey("Organization")] public int OrganizationId { get; set; } [Column(Order = 2), ForeignKey("Individual")] public int IndividualId { get; set; } public virtual Organization Organization { get; set; } public virtual Individual Individual { get; set; } public virtual Incident Incident { get; set; }}我希望一切都清楚。謝謝小伙伴們
1 回答

牧羊人nacy
TA貢獻1862條經驗 獲得超7個贊
我會使用 Fluent API 手動定義約束:
migrationBuilder.Sql("ADD CONSTRAINT CK_ONLY_ONE_VAL CHECK ((nullif(one,'') is null or nullif(other,'') is null) and not (nullif(one,'') is null and nullif(other,'') is null) );");
這nullif()
將有助于檢查空值并轉換為null
...
- 1 回答
- 0 關注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消