0
A
回答
0
我不能做INPC,因爲我沒有知道怎麼做與未知的力量,但我做一個比較:
public static class VistaEntityManager
{
static object _EntityInicial, _EntityFinal;
public static object EntityFinal
{
get { return _EntityFinal; }
set {
Type tipo = ((object)value).GetType();
_EntityFinal = Activator.CreateInstance(tipo);
foreach (PropertyInfo pi in _EntityFinal.GetType().GetProperties())
{
pi.SetValue(_EntityFinal, pi.GetValue(value, null), null);
}
}
}
public static object EntityInicial
{
get { return _EntityInicial; }
set
{
Type tipo = ((object)value).GetType();
_EntityInicial = Activator.CreateInstance(tipo);
foreach (PropertyInfo pi in _EntityInicial.GetType().GetProperties())
{
pi.SetValue(_EntityInicial, pi.GetValue(value, null), null);
}
}
}
/// <summary>
/// Retorna as propriedades que tiveram seus valores alterados.
/// </summary>
/// <exception cref="EntityInicial e EntityFinal nulas"></exception>
/// <exception cref="Entidades com tipos diferentes"></exception>
/// <returns></returns>
public static List<string> PropriedadesAlteradas()
{
if (_EntityFinal == null || _EntityInicial == null)
throw new ArgumentNullException("A Entidade Final ou a Entidade Inicial está nula.");
if (_EntityFinal.GetType() != _EntityInicial.GetType())
throw new ArgumentException("Os tipos das entidades são diferentes.");
List<string> propriedades = new List<string>();
foreach (PropertyInfo p in _EntityInicial.GetType().GetProperties())
{
if (!Object.Equals(p.GetValue(_EntityInicial, null), p.GetValue(_EntityFinal, null)))
propriedades.Add(p.Name);
}
return propriedades;
}
}
相關問題
- 1. 如何更新EF 4.0中的非標量實體屬性?
- 2. 獲取實體 - EF
- 3. EF 4中的受保護實體屬性是否與數據服務有關?
- 4. EF 4.0實體屬性的setter拋出ArgumentOutRangeException
- 5. 客戶如何取回實體的屬性改變服務器
- 6. Breeze.js - 更改服務器上的實體的屬性值保存實體之前
- 7. 如何僅通過EntityFramework更新實體的已更改屬性
- 8. 獲取最新從子屬性爲實體框架(EF)
- 9. 如何獲取實時更改數據到本地服務器?
- 10. Google數據存儲,獲取具體的實體屬性
- 11. 如何在EF中獲取實體更改增量?
- 12. 更新N個已加入EF實體
- 13. 公開WCF數據服務中的實體的其他屬性
- 14. EF實體不會更新數據庫
- 15. 更改實體和屬性名稱在數據庫首先
- 16. 數據綁定實體框架導航屬性 - 處理更改
- 17. 選擇屬性實體ef linq
- 18. 獲取映射刪除過程使用已更改的實體數據
- 19. EF 4.0從MetadataWorkspace獲取EntitySetMappings
- 20. NHibernate.Envers實體屬性更改日誌
- 21. cakephp 3獲取從屬模型的屬性更改實體(表格)
- 22. 實體框架數據庫優先和EF代碼先在EF數據庫中獲取關係對象編號
- 23. 獲取核心數據相關實體屬性
- 24. 核心數據獲取的實體,只有獨特的屬性
- 25. EF 4.1代碼優先 - 確定哪些屬性已更改
- 26. 更改ADO.NET實體數據模型默認EF版本?
- 27. 無法使用實體框架從WCF服務獲取數據
- 28. 獲取EF上下文已更改錯誤後更新站點
- 29. 從WCF服務獲取實體
- 30. 獲取已更改
服務器端或客戶端?客戶端上的 – Aron
。 –
查看了'DataServiceContext'文檔。它看起來並不像它跟蹤哪些屬性發生了變化。 – Aron