У меня немного уникальная структура базы данных, но я думаю, что запрос, который я пытаюсь сделать, не слишком необычен.
По сути, я создаю новую запись.Затем я сохраняю эту запись, затем немного обновляю XML, а затем обновляю запись новым XML.У меня проблемы в том, что второе сохранение ничего не делает.
var applicant = new Applicant();
applicant.XmlData = "";
applicant.Save(); //save once and initiate the record
data.RecordRID = applicant.ApplicantRID;
applicant.XmlData = data.SerializeToXml();
var c=applicant.GetDirtyColumns().Count; //this returns a count of 0
applicant.Save(); //save twice to populate RecordRID
Также, для справки, сгенерированное свойство XmlData
выглядит так:
public string XmlData
{
get { return _XmlData; }
set
{
if(_XmlData!=value){
_XmlData=value;
var col=tbl.Columns.SingleOrDefault(x=>x.Name=="XmlData");
if(col!=null){
if(!_dirtyColumns.Any(x=>x.Name==col.Name) && _isLoaded){ //_isLoaded is never set to true for either saves
_dirtyColumns.Add(col);
}
}
OnChanged();
}
}
}
Итак.. В чем проблема?Нужно ли мне выполнить запрос и получить объект из базы данных, а затем обновить его?или я что-то упустил?
Примечание. Я должен сохранить это дважды, поскольку ApplicantRID является уникальным первичным ключом.Поэтому мне нужно вставить запись, прежде чем я узнаю, что это такое