EF/LINQ:查找()操作
本文关键字:操作 查找 LINQ EF | 更新日期: 2023-09-27 17:49:33
我试图获得当前用户数据行。但是,当我执行这段代码
MNDataContext _db = new MNDataContext();
var nm = User.Identity.Name;
var id = (int)Membership.GetUser(User.Identity.Name).ProviderUserKey;
var slct = _db.Utilisateurs.Find((int)Membership.GetUser(User.Identity.Name).ProviderUserKey);
我得到null
作为var slct
线上的值。这很奇怪,因为调试器指出nm和id有正确的值,但最后一个没有得到正确的对象值。
MNDataContext类
public class MNDataContext: DbContext
{
public DbSet<UtilisateurModel> Utilisateurs { get; set; }
}
Utilisateur的主键:
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
[Display(Name = "Identifiant")]
public int UserId { get; set; }
有什么好主意吗?非常感谢!
当您这样尝试时会发生什么?
MNDataContext _db = new MonitoringNDataContext();
var nm = User.Identity.Name;
var id = (int)Membership.GetUser(User.Identity.Name).ProviderUserKey;
UtilisateurModel slct = _db.Utilisateurs.Find(id);
slct
仍然为空吗?id
的值是多少?
胡乱猜测…你正在做一个int的查找,它需要一个对象。试试这样写
MNDataContext _db = new MonitoringNDataContext();
var nm = User.Identity.Name;
var id = (int)Membership.GetUser(User.Identity.Name).ProviderUserKey;
UtilisateurModel slct = _db.Utilisateurs.Find(x=>x.Id=id);