2

我正在尝试在我的 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);
}

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

4

1 回答 1

1

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

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

newsitem.originalposter = (Guid)Membership.GetUser().ProviderUserKey;
于 2011-11-22T16:00:11.477 回答