2015-06-09 2 views
0

Я использую EF6, и я импортировал некоторые хранимые процедуры. Есть ли способ, который я могу программно определить, какие входные параметры для конкретной процедуры? Я хотел бы автоматически сгенерировать некоторый код C# для выполнения любой хранимой процедуры, но сначала мне нужно определить, что такое входные параметры.Entity Framework 6 - Как определить входные параметры хранимой процедуры

Например, в настоящее время я импортировал хранимую процедуру с именем SellerModify. У меня есть C# код для выполнения этой хранимой процедуры, которая выглядит, в частности, следующее:

DbContext.Database.ExecuteSqlCommand("SellerModify @MarketName, @BankLocationCountryCode, @BankAccountOwnerNam, 
    new SqlParameter("@MarketName", seller.MarketName), 
    new SqlParameter("@BankLocationCountryCode", seller.BankLocationCountryCode),     
    new SqlParameter("@BankAccountOwnerName", seller.BankAccountOwnerName))); 

Я хотел бы, чтобы этот код автоматической генерации, но мне нужно, чтобы иметь возможность сначала определить входные параметры.

ответ

0

То, что вы ищете, является эквивалентом ADO.NET SqlCommandBuilder.DeriveParameters() method. К сожалению, насколько мне известно, Entity Framework не предлагает ничего подобного.

Сказанное: при условии наличия базы данных Microsoft SQL Server, вы можете запросить базу данных заранее, чтобы получить список параметров. Это может быть сделано с помощью что-то подобное в следующем SQL:

select  PARAMETER_NAME, 
      DATA_TYPE 
from  information_schema.parameters 
where  specific_name = 'SellerModify' 

Я знаю, что это не совсем то, что вы ищете, но он может обеспечить альтернативный подход к решению проблемы.

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