我试图在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/