例如,我有一个Customer
类,具有Username
和Mobile
这两个属性应该是唯一的。在保存逻辑中,我想执行以下操作:
public void Save(Customer customer)
{
if (ValidateUniqueness(customer, expressions))
{
... // Save to DB
}
}
expressions
变量是使用以下代码预先设置的:
SetUniqueness(c => c.Username);
SetUniqueness(c => c.Mobile);
棘手的部分是,唯一属性不一定总是为字符串类型。因此,我不能使用List<Expression<Func<Customer, string>>>
来强制属性类型。
有些直觉告诉我,我可以通过动态构建表达式来实现这一目标。但这对我来说太不透明了。
那么有可能这样做吗?