繁体   English   中英

如何在数据库中创建来自用户系统中ASP.NET的对用户的引用?

[英]How do I create a reference in my DB to a user from the ASP.NET build in usersystem?

我正在尝试将一个对象保存在OODB中,这基本上是一个新闻项目(标题,一些文本,海报和张贴日期)。

我毫不费力地从ASP.NET MembershipUser类中检索用户对象。

但是当我尝试保存时,似乎并非所有数据都记录在我的数据库中。 下面是创建方法代码示例:

[HttpPost]
public ActionResult Create(Newsitem newsitem)
{
    if (ModelState.IsValid)
    {
        newsitem.postdate = DateTime.Now;
        newsitem.originalposter = Membership.GetUser(User.Identity.Name, true /* userIsOnline */);

        db.newsitems.Add(newsitem);
        db.SaveChanges();
        return RedirectToAction("Index");  
    }

    return View(newsitem);
}

例如,当我从数据库加载对象时,缺少用户名。 这是我的加载方法:

public ActionResult Index()
{
    var news = (from n in newsDB.newsitems orderby n.postdate descending select n).Take(10);
    return View(news);
}

有人知道为什么不保存对象的某些变量吗?

是的,最好将originalposter定义为GUID。 如果我没有记错的话,默认的asp.net成员资格提供程序将UserId定义为Guid。 如果这样做,它将起作用。

然后,您可以执行以下操作:

newsitem.originalposter = (Guid)Membership.GetUser().ProviderUserKey;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM