6

私はDALにLinqtoSQLを使用しており、Webアプリケーションでの静的メソッドの使用についてさまざまなことを聞​​いています(スレッド化/同時実行性の問題に関して)。現時点では、正常に機能しているように見えるテストDALを作成しました。ただし、静的であるため、作成方法に問題はありますか?

    public static class TestDAL
    {


        public static bool GetUserAddress(string username)
        {
            testDBDataContext dbContext = new testDBDataContext();
            //Linq code goes here

        }


        public static void InsertUserNumber(int userID)
        {
            testDBDataContext dbContext = new testDBDataContext();
            //...
            dbContext.UserDetails.InsertOnSubmit(nUser);
            dbContext.SubmitChanges();

        }

       //etc... All the methods are created in the same way 


    }

この方法はWebアプリケーションに適していますか、それとも実稼働環境で問題がありますか?

ありがとう。

4

3 に答える 3

5

静的メソッドが共有状態(クラスレベルの状態またはその他のグローバル状態)を使用しない限り、それら自体がマルチスレッド環境での実行に問題を引き起こすことはありません。静的メソッドを呼び出すたびに、独自のローカル変数のコピーが作成されます。

于 2010-02-10T17:21:29.750 に答える
3

個人的には、静的メソッドを使用しないようにします。静的メソッドを使用すると、このコードのテストが非常に難しくなるためです。DALを使用するコードをテストするときに、DALを簡単にモックアウトすることはできません。これはLINQまたはデータアクセスレイヤーに固有のものではなく、インスタンスメソッドではなくクラスメソッドであるコードの関数であることに注意してください。

于 2010-02-10T17:20:22.623 に答える
2

あなたが提供したスニペットから、さまざまな方法が何をするのかはあまり明確ではありません。私の見方では、ローカル変数を使用している限り、安全です。

于 2010-02-10T17:21:43.973 に答える