我正在尝试创建一个自定义模型(例如博客文章),该模型与 MVC 4 模板中用于注册和 oAuth 身份验证的 WebSecurity 功能使用的实体“UserProfile”相关。
下面的例子:
public class Post
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Detail { get; set; }
public UserProfile User { get; set; }
}
我能够正确地将当前的 UserProfile 与博客文章相关联,如下所示:
post.User = user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == WebSecurity.CurrentUserName);
db.Posts.Add(post);
db.SaveChanges();
但是当我尝试从数据库中获取博客文章时,我为用户获取了一个空对象:
var post = db.Posts.Where(x => x.Id == postId).FirstOrDefault();
post.User is null!
我相信这是因为创建 SimpleMembershipProvider 时在数据库中创建的关系:
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "Id", "UserName", autoCreateTables: true);
我确定必须有一种方法可以忽略这些或在我的博客类的 User 属性中添加一个属性来克服这个问题?
提前致谢。