Как мне создать ссылку в моей БД на пользователя из сборки ASP.NET в пользовательской системе?
Я пытаюсь сохранить объект в моем 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);
}
Кто-нибудь знает, почему некоторые переменные объекта не сохраняются?
1 ответ
Решение
Да, лучше всего, если вы определили originalposter в качестве GUID. Если я правильно помню, поставщик членства asp.net по умолчанию определяет UserId как Guid. Если вы это сделаете, это будет работать.
Тогда вы можете сделать следующее:
newsitem.originalposter = (Guid)Membership.GetUser().ProviderUserKey;