public void Execute(string updateText) { // ※下記実装は、本来 static メソッドであるべきですが、このテスト用サンプルは DBConnectionExecutor と比較出来るように、 // インスタンスとして何らかの処理をすることをイメージしたものとなっています。 if (string.IsNullOrEmpty(updateText)) { throw new ArgumentException("updateText に Empty 文字、および null 参照 (Visual Basic の場合は Nothing) を指定することは出来ません。", "updateText"); } // DB の接続文字列は、Entity Framework 標準機能により(コンストラクタに何も指定しないことで)App.config から取得して動作します。 // このクラスの場合、そつ族文字列の名前は UnitTestSampleEntities です。 using (var db = new UnitTestSampleModelContainer()) { // ※ Text フィールドにインデックスがないと、大量データだととても遅くなりますね。 var count = (from row in db.SampleTexts where row.Text == updateText select row).Count(); if (count > 0) { throw new ArgumentException("データベースに既に保存されているテキストを更新することは出来ません。別の値を指定してください。", "updateText"); } var newRow = new SampleText() { Text = updateText }; db.AddToSampleTexts(newRow); db.SaveChanges(); } // end using (db) } // end sub
/// <summary> /// 指定されたテキストを、Environment.EntityConnectionString プロパティで指定された接続で SampleText テーブルに保存します。 /// ただし、指定されたテキストが既に登録されている時は例外を返します。 /// </summary> /// <param name="updateText"></param> public void Execute(string updateText) { if (string.IsNullOrEmpty(updateText)) { throw new ArgumentException("updateText に Empty 文字、および null 参照 (Visual Basic の場合は Nothing) を指定することは出来ません。", "updateText"); } if (this.Environment == null) { throw new InvalidOperationException("Environment プロパティが指定されていません。Execute メソッドを実行するまえに、Environment プロパティを指定してください。"); } if (string.IsNullOrWhiteSpace(this.Environment.EntityConnectionString)) { throw new InvalidOperationException("Environment プロパティの EntityConnectionString プロパティが指定されていません。Execute メソッドを実行するまえに、Environment.EntityConnectionString プロパティを指定してください。"); } using (var db = new UnitTestSampleModelContainer(this.Environment.EntityConnectionString)) { // ※ Text フィールドにインデックスがないと、大量データだととても遅くなりますね。 var count = (from row in db.SampleTexts where row.Text == updateText select row).Count(); if (count > 0) { throw new ArgumentException("データベースに既に保存されているテキストを更新することは出来ません。別の値を指定してください。", "updateText"); } var newRow = new SampleText() { Text = updateText }; db.AddToSampleTexts(newRow); db.SaveChanges(); } // end using (db) } // end sub