gpt4 book ai didi

c# - 如何区分在我的验证方法中编辑和创建新项目?

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:57 25 4
gpt4 key购买 nike

我试图确保我的 cms 中的每个项目都有一个唯一的 url。

模型已成为一个 IValidatableObject,我正在使用下面的验证方法。

我遇到的问题是辨别项目是正在创建(url 不能匹配任何现有项目)还是编辑(url 不能匹配除它本身之外的任何项目)。

我该怎么做...我什至以正确的方式接近它吗?

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
DataContext db = new DataContext();
string itemContainingURL = db.CMSPages.Where(c => c.URL == URL).Select(c => c.Title).SingleOrDefault();
if (!string.IsNullOrEmpty(itemContainingURL))
{
yield return new ValidationResult(String.Format("URL should be unique, but it already exists for item: {0}", itemContainingURL), new[] { "URL" });
}

}

最佳答案

重要吗?只需测试是否存在共享该 URL 的 不同 ID 项目,您就可以涵盖这两种情况。

示例伪代码:

bool IsUnique()
{
return !repository.Any(x => x.ID != this.ID && x.URL == this.URL);
}

关于c# - 如何区分在我的验证方法中编辑和创建新项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17806897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com