我在论坛上进行了很多搜索,但没有找到关于这个问题的任何信息。
我有两个属性在EntityFramework Code First中:
[Column(TypeName = "Money")]
public decimal? Debit { get; set; }
[Column(TypeName = "Money")]
public decimal? Credit { get; set; }
其中一个应该不为空,但另一个应该为空。 例如:
Debit=null;
Credit=34;
Debit=45;
Credit=null;
另一方面,不应该同时设置它们为空或都不为空。是否可以使用数据注释来解决此问题,或者应该使用一些变通方法?祝好!
ALTER TABLE TableName ADD CONSTRAINT OneColumnNull CHECK ((Debit IS NULL AND Credit IS NOT NULL) OR (Debit IS NOT NULL AND Credit IS NULL))
正好符合你的要求。你可以将该查询作为数据库迁移脚本的一部分。 - Scott Chamberlain