2015-10-20 2 views
0

Мне нужно уточнение, я прошел через разные турканы на основе сущности и реализовал в своем проекте.Параметризированные запросы в инфраструктуре сущности

Позже, когда дело дошло до обеспечения безопасности, я понял, что параметризованные запросы полезны для обеспечения безопасности.

Мои вопросы:

  1. Будет ли предприятие framwork автоматически заботиться о параметризованных запросов
  2. Если да, то где она реализуется?
  3. Является ли он реализованным в контексте класса, как показано ниже?

modelBuilder.Entity<TriggerEvent>().HasKey(c => c.TriggerEventId) 
      .HasIndex("IX_TriggerEvent_LegacyName", IndexOptions.Unique, 
         e => e.Property(x => x.LegacyName)) 
      .Map(m => 
      { 
        m.MapInheritedProperties(); 
        m.ToTable("refTriggerEvent", schemaName: "CaseManagement"); 
      }); 
+1

erm ... Linq to Entities не использует параметризованные запросы ... Entity SQL может ... Метод построения запроса может (с использованием ObjectQuery) ... выполнение необработанного SQL - это реальная проблема с опасными параметрами ... EF будет выполнять сопоставление типов данных в большей степени (не уверен точно, где он это делает) .. ваш код определяет часть вашей модели ... это не параметризованный запрос. –

+0

Это может оказаться интересным для вас ... https://msdn.microsoft.com/en-us/library/vstudio/bb738521%28v=vs.100%29.aspx –

ответ

3

Будет ли предприятие framwork автоматически заботиться о параметризованных запросов

Да.

Если да, то где это реализовано?

EF - это с открытым исходным кодом, вы можете тралить через реализацию.

Является ли он реализованным в контексте класса, как показано ниже?

Этот код является определяющим (частью) модели. Нет запроса параметризировать.

Если вы настраиваете ведение журнала (DbConext.Database.Log), вы можете увидеть SQL и параметры, передаваемые в базу данных.