ViewModelに2つのエンティティのプロパティがあります。 2つのエンティティは、両方とも互いに関連しているため、たとえば、UserとPostです。各ユーザは複数の投稿を持つことができ、多くの投稿は1人のユーザ(1対多)に属することができます。2つの関連するエンティティを持つ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();
}
}
それはすべてが正常に見えるが、しかし、ときに私のViewModelは次のようになります私はポストを表示しようとすると、そのユーザーの関係はnullです!
私も
u.Posts.Add(p);
UPDATEしようとした:
マイPostクラスのコードを次のとおりです。
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; }
}
しかし、また、機能しなかったこと。私は間違って何をしていますか?私ははどんな助けを大いに歓迎するでしょう。
ありがとうございます。
'Post'クラスコードを表示できますか? – Eranga
更新された投稿を参照してください。ありがとうEranga – Ciwan