如何使字段独特的ASP.NET MVC5

时间:2015-12-06 09:31:09

标签: c# asp.net entity-framework asp.net-identity

我想让电子邮件字段与众不同。这是ApplicationUser(IdentityUser)的一个领域。这就是我所做的: 命名空间BidProject.Models {

public class ApplicationUser : IdentityUser
{
    public int UserID { get; set; }
    [Index(IsUnique = true)]
    public string Email { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }


}

我有这些参考文献:

using Microsoft.AspNet.Identity.EntityFramework;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;

我得到了这些错误:

  

找不到类型或命名空间名称“索引”(您是否遗漏了)   using指令或汇编引用?)
  类型或命名空间   无法找到名称'IndexAttribute'(您是否错过了使用   指令或程序集引用?)

如何让该字段独一无二?或者您能告诉我IdentityUser的UserName字段是如何唯一的吗?感谢。

3 个答案:

答案 0 :(得分:1)

添加:

using System.ComponentModel.DataAnnotations.Schema;

如果这不起作用,请检查您是否有对EntityFramework.dll的引用。

答案 1 :(得分:0)

您应该为索引指定名称。使用以下语法。

[Index("IX_EmailUnique", 1, IsUnique = true)]

答案 2 :(得分:0)

看起来您缺少文件顶部的命名空间或EntityFramework.dll的项目引用?尝试将光标放在单词'索引'中,然后点击ctrl-。 - 你应该看到一个弹出菜单,提供类似“解析参考”的内容。或者'添加使用以使用System.ComponentModel.DataAnnotations.Schema;'

如果你有一个引用.net 4.5程序集的.n​​et 4.0项目,有时会破坏它。您需要将项目升级到更新版本的框架。