2015-08-05 3 views
0

Я использую Entity Framework v 6.1.3, и я хочу проверить, существует ли триггер в базе данных.Entity Framework: проверьте, существует ли триггер

У меня есть часть SQL, которую я запускаю, но проверка наличия триггера не работает. Он отлично работает в SQL Server Management Studio при запуске с той же базой данных. Он просто не находит триггер при запуске внутри EF/.NET

IF NOT EXISTS (SELECT * FROM sys.triggers WHERE [name] = 'DbTrigAuditHandler_CreateAlterDrop') 
BEGIN 
    DECLARE @sql NVARCHAR(MAX) 

    SELECT @sql = ' DYNAMIC SQL CREATE TRIGGER ' 

    EXEC sp_executesql @sql 
END 

В результате я получаю исключение, так как объект уже существует.

У меня есть два вопроса.

  1. Для чего это может случиться?
  2. Есть ли способ проверить внутри EF?

Приветствия

+0

Можете ли вы поместить его в хранимую процедуру и просто вызвать этот хранимый код из EF? – Mike

+0

К сожалению, я не могу поместить его в sp. –

ответ

0

Я понятия не имею, почему это было бы дело, но когда я заменил мой вызывающий код: От

Database.ExecuteSqlCommand(File.ReadAllText(path)); 

Для

var sql = File.ReadAllText(path); 
Database.ExecuteSqlCommand(sql); 

код выполняется как и ожидалось.

Смежные вопросы