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; }
有什么好主意吗?

非常感谢!

EF/LINQ:查找()操作

当您这样尝试时会发生什么?

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);