EF4 - 仅在列具有唯一值时插入?

时间:2012-08-20 11:40:43

标签: c#-4.0 entity-framework-4

假设一个类似博客的简单场景,其中帖子由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
}

但这对我来说似乎非常不优雅。我认为有更好的方法,但我不确定它会是什么。

2 个答案:

答案 0 :(得分:2)

您只需在基础数据库中的相应表上设置UNIQUE CONSTRAINT即可。

答案 1 :(得分:0)

你应该避免在可能的情况下抛出异常并仅使用它们来处理“正确的”异常,这意味着你可以避免发生这种情况。

无论如何,你的代码没有任何问题