私の ASP.NET Web サイト ユーザー モデルでは、 GuidId
と StringUserName
の両方を一意にする必要があります。Entity Framework を使用してモデル オブジェクトを DB にマップします。
ASP.NET MVC でこの一般的な制約を容易にする組み込み属性またはその他のメカニズムはありますか? それとも、ユーザー登録フォームでユーザー名の一意性を手動でチェックする必要がありますか?
私の ASP.NET Web サイト ユーザー モデルでは、 GuidId
と StringUserName
の両方を一意にする必要があります。Entity Framework を使用してモデル オブジェクトを DB にマップします。
ASP.NET MVC でこの一般的な制約を容易にする組み込み属性またはその他のメカニズムはありますか? それとも、ユーザー登録フォームでユーザー名の一意性を手動でチェックする必要がありますか?
まず、私の意見では、MVC またはフロント エンド アプリケーションは、これを行う責任を負うべきではありません。
一意の ID と一意のユーザー名は、データベースに適用する必要がある制約です。それ以外の場合、ユーザーを登録する唯一の方法は Web サイトからであると想定しています。
エンティティ フレームワークには、一意の制約を適用するための属性があります。詳細はこちら: http://blogs.msdn.com/b/efdesign/archive/2011/03/09/unique-constraints-in-the-entity-framework.aspx
最後に、ユーザーの ID に関しては、フロント エンド アプリケーションではなく、データベース内でこれらを自動生成することを検討します。
何かが組み込まれている可能性がありますが、EF を使用しているため、一意の値のチェックは 1 ~ 2 行で済みます。
bool uniqueGuid = Users.Any(u => u.Id == "guid");
bool uniqueUser = Users.Any(u => u.UserName == "username");