0
ASP MVC應用程序。在控制器中,我從數據庫中獲取2行,並根據需要比較它們並添加新數據。每個模型如下所示:向db/model添加新行,同時避免「收集被修改」錯誤
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
我試圖將項目添加到它似乎確定名單內的臨時名單,但我不能弄清楚如何從臨時列表移動到它添加到existingRecord。一旦完成,我將添加db.savechanges();
我想我正在混淆幾種做法(模型,linq,EF)的方法,所以如果有人可以推薦一個方法並指向我一個很好的教程,那會很棒。謝謝。