我试图获取当前用户数据行。但是,当我执行此代码时
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; }
有什么好主意吗?
非常感谢!!
答案 0 :(得分:0)
当你这样尝试时会发生什么?
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
有什么价值?
答案 1 :(得分:0)
只是一个疯狂的猜测......你正在寻找一个想要一个对象的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);