Професионална програма
Loading...
+ Нов въпрос
Samuil_Dechev avatar Samuil_Dechev 35 Точки

относно MiniORM ChangeTracker Construktor

Здравейте! Ще съм благодарен, ако някой ми поясни каква е разликата  между следните два реда в класа Change Tracker(иде реч за конструктора и за това, че цял един метод ми се струва излишен):

1.         this.allEntities = CloneEntities(entities);

2.            this.allEntities = new List<T>(entities); (защо не по-скоро това?)

 

Въпросът ми е : по втория начин не клонирам ли директно, без рефлек'шън и целия му там метод?

TeodorStefanovPld avatar TeodorStefanovPld 1275 Точки
Best Answer

ако беше само entities щеше да им вземеш state-a които съществува а ако направиш промени няма да имаш с какво да ги сравниш реално cloneentites ти дава началния state върхху които после ако се извършат промени ще можеш да сравняваш дали и къде е имало промяна. Примерно вкарал си  едно employee и в базата то е с фамилия Nakov примерно обаче докато програмата ит върви сменяш фамилията на Ivanov по някаква причина и ако използваш това което ти предлагаш тази промяна ти няма да е хванеш че има разлика. Идеята на целия тоя cloneEntites е да ти вземе началния state като го заредиш от базата и да можеш да проследиш и запазиш после промените. Това ти което предлагаш е просто да си вземеш някакъв списък с тях. но няма как да сравниш началното и крайното състояние когато правиш сравнението в метода по -долу.

2
sukalu88 avatar sukalu88 46 Точки

I will visit your sharing regularly, I hope to cooperate with you. us map

-1