Kaps_ Ответов: 2

Как перенести SQL-данные из одной таблицы в другую с помощью ядра entity framework


 have two tables in my database that contains the same columns. TBL one and TBL two which is history table. When I am entering Data in TBL 1 then I want to move All data from TBL 1 to Tbl 2 (as history Data) using EF Core 2.2

I don't want to write unnecessary loops to make the code ugly.



All I need is copy SQL Data from table 1 to table 2 using EF and avoiding loops. Any example with mapper or anything which works will help.


Что я уже пробовал:

var MyEntity = new MyEntities();
var TBL1 = MyEntity.TBL1.Find();
var TBL2 = new TBL2();

TBL2.CurrentValues.SetValues(TBL1); 
//CurrentValues is not accept in code. Giving me build error

MyEntity.TB2.Add(data2);
MyEntity.TB1.Remove(data1);
MyEntity.SaveChanges();

Gerry Schmitz

Используйте SQL на сервере; с каким - то "критерием" для перемещения / копирования записей.

Круговое отключение этого типа вещей "не эффективно".

2 Ответов

Рейтинг:
0

#realJSOP

Напишите сохраненный процесс, который добавляет данные в обе таблицы, или настройте триггер.


Рейтинг:
0

Patrice T

Цитата:
Как перенести SQL-данные из одной таблицы в другую с помощью ядра entity framework

Неправильный подход!
То, что вы описываете, это:
Чтение таблицы 1 из SQL server => отправка данных на ПК => отправка данных обратно на SQL server => запись данных в таблицу 2 на SQL server.
когда его можно упростить до:
Прочитайте таблицу 1 из SQL server => Отправить данные на ПК => отправить данные обратно на SQL server => Запись данных в таблицу 2 на SQL server.
и:
Чтение таблицы 1 из SQL server => запись данных в таблицу 2 на SQL server.

Вы должны написать 1 SQL-запрос!
Преимущество, это быстрее.


Kaps_

Хорошее предложение. как это сделать без написания хранимой процедуры? Я использую EFcore с C#.