В моем проекте есть два контекста EF 4.1, один из них является первым для модели, а второй - кодовым. Оба контекста расширяют DbContext и подключаются к базе данных Oracle.EntityFramework 4.1 Code First Oracle Вставка кода PL/SQL
При выполнении обновления для большой таблицы (5M записей), то модель-первых контекст создает SQL, как можно было бы ожидать, и она работает быстро (миллисекунды):
update <schema.table_name> set field = 'value' where id = 1234
При выполнении обновления на большой стол (4.7M записей), то кода первого контекст производит некоторые PL/SQL, который странный:
declare
"UWI" nvarchar2(
128)
;
begin
update
"SCHEMA"."TABLE"
set "FIELD" = 'VALUE' /* :p0 */,
where ("UWI" = '2224434' /* :p37 */)
returning
"UWI" into
"UWI";
open '' /* :p38 */ for select
"UWI" as "UWI"
from dual;
end;
Это заявление обновления занимает 3 секунды, чтобы закончить.
Вот код-первых EntityTypeConfiguration для контекста кода-первых:
public WellEntityConfiguration()
{
this.ToTable("TABLE", "SCHEMA");
this.HasKey(entity => entity.Uwi);
this.Property(entity => entity.Uwi).HasColumnName("UWI");
... //lots of properties being set
}
Есть ли конфигурация я могу установить, чтобы заставить EF, чтобы создать простое обновление заявление вместо безумного PL/SQL?