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



我试图找到一个拥有自定义属性"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"){}
    }
}

应用程序用户.cs

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

错误为"System.Data.Entity.IDbSet不包含'Where'的定义,并且找不到接受类型为'System.Data.Eentity.IDbSet'的第一个参数的扩展方法'Where](是否缺少using指令或程序集引用?)

如果没有Where行,我的应用程序将正确运行,使用我的Token将用户添加到数据库,等等。我需要做什么才能通过该自定义字段找到AppUser??

在Visual Studio中,您可以滚动显示错误行,它将建议相应的缺少using

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

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

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

我添加了

using System.Linq;

这就解决了的问题

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

使用底部代码获取自定义属性的自定义ApplicationUser

var context=new AuthContext();
var result=context.Users.OfType<ApplicationUser>.SingleOrDefault(item => item.NationalCode == "");

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

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

最新更新