3

実際、私は Visual Studio 2010 で Entity Framework 4.1 を使用するコードを持っています[parameters.Add]

これが私のコードです:

using (MyEnterprisesEntities dataContext = new 
                             MyEnterprisesEntities(entityBuilder.ToString()))
{
         dataContext.CompanyInitializer(connection.Catalog,
                                        args.CompanyId,
                                        args.CompanyName);
}

したがって、私の会社の名前がO'Brian and sons(実際には以前に WCF Web サービスを通過したため、この形式になっている: O\'Brian and sons) の場合、ストアド プロシージャが壊れているようです (SQL インジェクションを許可する可能性を含む)。

EDMX でこの状況を回避する方法はありますか、それとも古い方法の方が信頼性が高いですか?

4

1 に答える 1

0

ストアドプロシージャを呼び出す前に、何もする必要はありません。これを支援するために、SQLプロファイラーを起動して、データベースに送信されるパラメーターを確認してください。いくつかのテストを実行しましたが、O'Brianのようなパラメーターを使用している場合、フレームワークはSQLへのクエリの引用符を自動的に2倍にします。

于 2012-11-12T15:04:54.930 に答える