假设一个类似博客的简单场景,其中帖子由id和SEO友好的slug存储。有没有办法在插入过程中检查塞子是否已经存在?我的意思是,我总是可以这样做:
var check = context.Posts.SingleOrDefault(p => p.slug == slug);
if (check != null)
{
// slug already exists - modify or throw exception
}
else
{
// save as normal
}
但这对我来说似乎非常不优雅。我认为有更好的方法,但我不确定它会是什么。
答案 0 :(得分:2)
您只需在基础数据库中的相应表上设置UNIQUE CONSTRAINT
即可。
答案 1 :(得分:0)
你应该避免在可能的情况下抛出异常并仅使用它们来处理“正确的”异常,这意味着你可以避免发生这种情况。
无论如何,你的代码没有任何问题