ASPMVCアプリ。コントローラで、データベースから2つの行を取得し、それらを比較して、必要に応じて新しいデータを追加します。それぞれのモデルは次のようになります。
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public List<PersonAlias> AliasList { get; set; }
public List<Identification> IDList { get; set; }
リストにたどり着くと困っています。ループして比較するのは得意ですが、追加するのに問題があります。これが私が持っているものです:
var newRecord =
(from p in db.Person
where p.ApplicantID.Equals(ApplicantId)
select p).First();
// Get the existing applicant record
var existingRecord =
(from e in e_db.PersonAttributes
where e.PersonID.Equals(PersonId)
select e).First();
foreach (var newAlias in newRecord.PersonAlias)
{
matchesAny = true;
List<PersonAlia> tempAlias = new List<PersonAlia>();
if ( existingRecord.PersonAlias != null)
{
foreach (var oldAlias in existingRecord.PersonAlias)
{
if ((oldAlias.FirstName != newAlias.FirstNameAlias) || (oldAlias.LastName != newAlias.LastNameAlias))
{
matchesAny = false;
}
if (!matchesAny)
{
tempAlias.Add(new PersonAlia
{
FirstName = newAlias.FirstNameAlias,
MiddleName = newAlias.MiddleNameAlias,
LastName = newAlias.LastNameAlias,
CreatedBy = User.Identity.Name,
CreateDate = DateTime.Now,
ModifiedBy = User.Identity.Name,
ModifiedDate = DateTime.Now
});
}
} // End inner foreach
existingRecord.PersonAlias.Add(new PersonAlia
{
FirstName = tempAlias.
MiddleName = newAlias.MiddleNameAlias,
LastName = newAlias.LastNameAlias,
CreatedBy = User.Identity.Name,
CreateDate = DateTime.Now,
ModifiedBy = User.Identity.Name,
ModifiedDate = DateTime.Now
});
} // End outer Foreach
リスト内の一時リストにアイテムを追加しようとしていますが、一時リストから既存のレコードに追加する方法がわかりません。完了したら、db.savechanges();を追加します。
私はこれを行うためのいくつかの方法(モデル、linq、EF)を混同していると思うので、誰かが1つのメトイドを提案し、良いチュートリアルに私を向けることができれば、それは素晴らしいことです。ありがとうございました。