我试图在oodb中保存一个对象,它基本上是一个新闻项目(标题、一些文本、海报和postdate)。
从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成员资格提供程序将用户id定义为guid。
如果你那样做,它会起作用的。
然后您可以执行以下操作:

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

关于c# - 如何在数据库中创建来自用户系统中ASP.NET的对用户的引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8228336/

10-13 03:33