Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ef code first 对于Asp.net Identity User的POCO中的属性,我使用什么类型(类)_Ef Code First_Poco_Asp.net Mvc 5_Asp.net Identity - Fatal编程技术网

Ef code first 对于Asp.net Identity User的POCO中的属性,我使用什么类型(类)

Ef code first 对于Asp.net Identity User的POCO中的属性,我使用什么类型(类),ef-code-first,poco,asp.net-mvc-5,asp.net-identity,Ef Code First,Poco,Asp.net Mvc 5,Asp.net Identity,我有一个codefirst POCO,我想从我当前的ASP.NET身份用户中指定一个LastEditUser。我尝试使用新项目生成的类型ApplicationUser。但它只保存为null 这是我目前的尝试 public class SomeClass { public string SomeProperty { get; set; } public ApplicationUser LastEditMember { get; set; } } 下面是我如何将其保存到控制器中的

我有一个codefirst POCO,我想从我当前的ASP.NET身份用户中指定一个LastEditUser。我尝试使用新项目生成的类型ApplicationUser。但它只保存为null

这是我目前的尝试

public class SomeClass
{
    public string SomeProperty { get; set; }
    public ApplicationUser LastEditMember { get; set; }
}
下面是我如何将其保存到控制器中的

string currentUserId = User.Identity.GetUserId();
ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == currentUserId);
instannceOfSomeClass.LastEditMember = currentUser;

再次加载后。LastEditMember属性为null。

我建议使用UserManager类来获取用户对象,而不是使用DbContext对象。您可以使用UserManager.FindByIdAsync(currentUserId)获取用户。此外,我还考虑到只有在用户登录到应用程序后才会命中此代码,否则currentUserId将为null

我尝试使用UserManager,它仍然只是返回一个ApplicationUser。当我将我的LastEditMember属性设置为等于此AplicationUser并保存时,一切似乎都正常,但当您再次加载实体时,LastEditMember再次为空。。。所以我还是被困在同一个地方。还有什么我可以尝试的吗?好的,我在数据库中看到,它实际上在LastEditMember列中保存了用户id。加载SomeClass实体时,用户只是没有加载到LastEditMember属性中。您的类应该遵循EF约定从DB存储和检索自定义类型。我的第一个预感是将其虚拟化,看看是否有效。否则,请按照EF期望的方式创建模型。谢谢,虚拟模型正是我所需要的!这个链接也将在未来帮助我