2012-02-17 71 views
1

在我的ASP.NET网站用户模型中,我希望GUID Id和字符串UserName都是唯一的。我将使用实体框架将我的模型对象映射到数据库。强制Id和UserName在ASP.NET MVC 3中是唯一的模型

是否有一个内置属性或一些其他机制,有利于ASP.NET MVC中的这种常见约束?还是我必须手动检查用户注册表单中的用户名唯一性?

回答

3

首先,在我看来,MVC或您的前端应用程序不应该为此负责。

唯一ID和唯一的用户名是数据库应该执行的约束条件,否则,您将假设从您的网站注册用户的唯一方法。

实体框架具有强制执行唯一约束的属性。更多的信息在这里:http://blogs.msdn.com/b/efdesign/archive/2011/03/09/unique-constraints-in-the-entity-framework.aspx

最后,关于你的用户的ID,我会考虑在数据库中自动生成这些,而不是你的前端应用程序。

+1

好的建议,谢谢。这是一件显而易见的事情,但是当你单独编程时,就像我现在不得不一样,我往往会忘记一些建筑中的小东西。谢谢。 – 2012-02-18 08:47:22

+1

我一年前经历过这个,这是一个很好的学习方式。 Udachi ;-) – 2012-02-18 08:59:29

0

可能有内置的东西,但检查唯一值是一行或两行,因为您使用的是EF。

bool uniqueGuid = Users.Any(u => u.Id == "guid"); 
bool uniqueUser = Users.Any(u => u.UserName == "username");