私は、DBContextクラスに基づいて自動生成されたクラスの一部としてストアドプロシージャの実行に必要な関数を自動的に生成するEntity Framework EDMXを使用しています。Entity Frameworkを使用したsql入力パラメータのサニタイズ
例えばは、このストアドプロシージャを実行するための、自動生成された関数である:
私は、ストアドプロシージャのいくつかの内部で動的SQLを使用しておりますのでpublic virtual ObjectResult<Company> GetCompanies(string companyName)
{
var companyNameParameter = companyName != null ?
new ObjectParameter("CompanyName", companyName) :
new ObjectParameter("CompanyName", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Company>("GetCompanies", companyNameParameter);
}
、私は、「カスタムExecuteFunctionを」ExecuteFunctionを上書きして使用したいですそこにいくつかのサニタイズ関数を追加して、各パラメータをループしてサニタイズします。私はおそらく、私はカスタムObjectContextクラスを作成し、何とかそれを使用することができますか?
私はまだEDMXエンティティフレームワークの自動生成関数を使用することができますか?
SP内のパラメータをサニタイズするいくつかの解決策がありますが、私はカスタムExecuteFunction関数またはカスタムObjectContextをEDMXと一緒に使用する方法を知りたいと思います。
- その後:*ドン」をあなたは 'EXEC sp_executesql @sql、N '{args定義}'、@ arg0、@ arg1、...'を使っていなければなりません。これは動的SQLを完全にパラメータ化することを可能にします。より多くの文脈:https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql –
@MarcGravell私はそれを知っているが、私はまだどのように学ぶことができるカスタムExecuteFunction関数またはカスタムObjectContextをEDMXとともに使用します。 – Omtechguy