私はこのスペースの今後のイベントオブジェクトを持っている:あなたが見ることができるように子オブジェクトは、Entity Framework 4 Code-Firstで自動的に更新されるはずですか?
public class Venue
{
public int Id { get; set; }
[Required]
[MaxLength(512)]
public string Name { get; set; }
public string Description { get; set; }
[Required]
[Display(Name = "Venue Type")]
public int VenueTypeId { get; set; }
public virtual VenueType VenueType { get; set; }
[Required]
[Display(Name = "Company")]
public int CompanyId { get; set; }
public virtual Company Company { get; set; }
public virtual ICollection<VenuePart> VenueParts { get; set; }
}
は、それがVenuePart
のコレクションを持っています。私は、ビューにVenue
を送信し、テキストボックスのテーブルとして出力VenuePart
のコレクションを。これはEdit(VenueDetailsViewModel venueDetailsViewModel)
にポストバックされます。デバッガを使用して、私は私の変更がVenuePart
のコレクションであることを確認することができますので、私たちは結合に良いだと思います。
私のコントローラはVenue
を更新しようとします。 Name
のようにオブジェクト上のプロパティに直接継承されます。しかし、コレクションをループしない限り、それらのオブジェクトは更新されません。その典型的な行動ですか?現時点で
unitOfWork.VenueRepository.Update(venueDetailsViewModel.Venue);
// Should this loop be necessary?
foreach (var venuePart in venueDetailsViewModel.Venue.VenueParts)
{
unitOfWork.VenuePartRepository.Update(venuePart);
}
unitOfWork.Save();
、私は(それは私が次取り組んでいますものですが)リストから消えリストや物事に新しいものを取り扱いについても、心配していません。私の最初のステップでは、リストを更新するだけです。コレクションをループして個々のオブジェクトを更新する必要がありますか?私がこれをしなければ、彼らは救いません。しかし、彼らは私のループがなければならないようだ。私の期待が高すぎるのですか、何か間違っていますか?
私のrepository
とunitOfWork
オブジェクトはthis tutorialのパターンになっています。 unitOfWork.VenueRepository.Update(venueDetailsViewModel.Venue);
はUnchanged
状態でオブジェクトグラフを取り付けるのみModified
としてvenue
を変化させるためである
合理的ですね。私はそれをリポジトリの中で動かすというあなたの提案を試みます。 – Chris