我试图在我的 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;
关于c# - 如何在我的数据库中创建对用户系统中 ASP.NET 构建的用户的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8228336/