У меня есть свойства для двух объектов в ViewModel. Оба объекта связаны друг с другом, например, Пользователь и Сообщения. Каждый пользователь может иметь несколько сообщений, и многие сообщения могут принадлежать одному пользователю (один ко многим).
Цель моей ViewModel - разрешить добавление пользователя и сообщения в одной форме. Так что моя ViewModel выглядит примерно так:
public class CreateVM
{
[Required, MaxLength(50)]
public string Username { get; set; }
[Required, MaxLength(500), MinLength(50)]
public string PostBody { get; set; }
// etc with some other related properties
}
В моем контроллере по методу создания у меня есть что-то вроде этого:
[HttpPost]
public ActionResult Create(CreateVM vm)
{
if (ModelState.IsValid)
{
User u = new User()
{
Username = vm.Username,
// etc populate properties
};
Post p = new Post()
{
Body = vm.PostBody,
// etc populating properties
};
p.User = u; // Assigning the new user to the post.
XContext.Posts.Add(p);
XContext.SaveChanges();
}
}
Все выглядит нормально, когда я прохожу его через отладчик, но когда я пытаюсь просмотреть сообщение, его пользовательские отношения равны нулю !!
Я тоже пытался
u.Posts.Add(p);
UPDATE
Код класса «Мой пост» выглядит следующим образом:
public class Post
{
[Key]
public int Id { get; set; }
[Required, MaxLength(500)]
public string Body { get; set; }
public int Likes { get; set; }
[Required]
public bool isApproved { get; set; }
[Required]
public DateTime CreatedOn { get; set; }
[Required]
public User User { get; set; }
}
Но это тоже не сработало. Что я делаю неправильно ? Я очень ценю любую помощь .
Спасибо.