mardi 27 août 2019

c# Reflection compare propery values

I am trying to build the most budget of ORMs.

I have 2 objects, one "item" and one "original", when creating item, i simply save a COPY of it, in a variable called original. The copy is created via an extension i stole from this post https://stackoverflow.com/a/11308879/10647851

So i want to build my update query, very simple i thought.

foreach (PropertyInfo prop in properties) {
   var one = prop.GetValue(original, null);
   var typeOne = one.GetType();
   var two = prop.GetValue(item, null);
   var typeTwo = two.GetType();

   if(one != two) { ... }
}

However, one is unequal to two in several cases where you would not expect it.

The ID (type in the model = int?) 2703 is unequal to 2703. I stepped through the code and the type is Int32. Booleans are problems too. Strings work. DateTime?'s work.





Aucun commentaire:

Enregistrer un commentaire