我正在尝试找到一个具有自定义属性“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?
答案 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)
使用底部代码以自定义属性
获取自定义 ApplicationUservar 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; }
}