MS SQL ServerデータベースでC#とLinq2SQLを使用します。いくつかのユニットテストを実行するためのmockdatacontextがあります。テストの結果、「実際の」データベースと「モック」データベースのどちらが使用されているかに応じて、2つの異なる動作が見つかりました。
シナリオ1:実際のデータベース
データベースには5つのレコードがあります。
db = realDatabase
db.InsertOnSubmit(new record)
var count1 = db.getTable.Count()
db.SubmitChanges()
var count2 = db.getTable.Count()
count1 = 5 count2 = 6
シナリオ2:モックデータベース
データベースには5つのレコードがあります。
db= mockDatabase
db.InsertOnSubmit(new record)
var count1 = db.getTable.Count()
db.SubmitChanges()
var count2 = db.getTable.Count()
count1 = 6 count2 = 6
*「モック」データベースは、SubmitChanges()が呼び出される前に新しいレコードをすでに認識しているため、カウントに含まれます。テストでは、2つの動作が同じである必要があります。
他の誰かがこの問題に遭遇しましたか、そしてあなたは解決策を提案できますか?