通过自定义属性标识asp.Net mvc查找用户

时间:2015-03-04 19:14:55

标签: c# asp.net-mvc-5 asp.net-identity

我正在尝试找到一个具有自定义属性“Token”的用户,我添加了数据库迁移,我尝试使用:

var adb = new AppDbContext();
var found = adb.Users.Where(u => u.Token == "ABDJ_SJ_ETC");//Error
//OR found = adb.Users.SingleOrDefault(); Error too

我的AppDbContext类

AppDbContext.cs

namespace MyApp{
    public class AppDbContext : IdentityDbContext<AppUser>{
         public AppDbContext(): base("DefaultConnection"){}
    }
}

AppUser.cs

namespace MyApp{
    public class AppUser : IdentityUser{
        public string Token {get;set;}
    }
}

错误是“System.Data.Entity.IDbSet不包含'Where'的定义而没有扩展方法'Where'接受类型'System.Data.Entity.IDbSet的第一个参数可以找到(你是吗?)缺少using指令或程序集引用?)

如果我的应用无法正确运行,请使用我的令牌等将用户添加到数据库。 我需要做什么才能通过该自定义字段找到AppUser?

3 个答案:

答案 0 :(得分:1)

在Visual Studio中,您可以翻转错误行,并建议相应的错误using

请记住在代码中包含.SingleOrDefault()语句:

var found = adb.Users.Where(u => u.Token == "ABDJ_SJ_ETC").SingleOrDefault()

答案 1 :(得分:0)

问题是Visual Studio没有建议我解决任何依赖,我不知道需要使用哪个指令,

我添加了

using System.Linq;

这解决了问题

感谢@ p.s.w.g帮助我

答案 2 :(得分:0)

使用底部代码以自定义属性

获取自定义 ApplicationUser
var context=new AuthContext();
var result=context.Users.OfType<ApplicationUser>.SingleOrDefault(item => item.NationalCode == "");

NationalCode ApplicationUser 中的自定义属性 ApplicationUser 是实现IdentityUser的自定义用户

public class ApplicationUser :  IdentityUser
{
    public string NationalCode { get; set; }
}