У меня есть ситуация, когда у меня есть классы данных, которые генерируются базой данных с различными свойствами на них, например, которые I не могут изменить.C# property collection/flag
public DataClass
{
public string PropertyX {get; set;}
public int PropertyY {get; set;}
public float PropertyZ {get; set;}
}
Некоторые из этих классов могут иметь около 20 свойств. При обновлении данных создается «временная» копия «постоянных» данных, затем свойства обновляются в переходном режиме и копируются из переходного состояния в постоянное.
Это нормально, хотя изменение только одного объекта не очень эффективно.
Я хотел выяснить, есть ли способ в C#, чтобы я мог создать список помеченных свойств или добавить атрибуты в определенные помеченные свойства, которые я хочу обновить.
Таким образом, конечный результат будет (обратите внимание, что это все псевдо)
DataClass transientObj = new DataClass(Transient);
[FlagPropertyToUpdate] //This is the bit I have no idea how to do
transientObj.propertyX = "updateOnlyMe!";
DataClass persistantObj = new DataClass(Persistant);
UpdateData dataUpdater = new UpdateData(transientObj,persistantObj)
dataUpdater.save();
public UpdateData
{
public void save(){
//some how know to only update propertyX and not all three properties
}
public UpdateData(DataClass trans, DataClass pers)
}
Любая помощь в том, как я мог бы идти об этом (и если его возможно) будут высоко оценены!
Спасибо Эрик, я посмотрю. Эта база данных Jade http://www.jade.co.nz/jade/index.htm и полностью ориентирована на объект. Таким образом, свойства часто ссылаются на другие объекты. Я все еще делаю больше исследований, к сожалению, у программного обеспечения базы данных нет такой информации об этом, хотя это требование. –
Учитывая, что Jade является коммерческим продуктом ORM, я бы предположил, что они разработали способы эффективного отслеживания того, какие объекты были сохранены в базе данных, и избежать ненужных усилий. Их все * raison d'etre * позволяет вам не думать о таких вещах. –