Bu yüzden TDD aracılığıyla bir veri erişim katmanı oluşturuyorum ve endişe duyuyorum. Yanlış yola başlamak istemem, bu yüzden sizden düşüncelerimin temiz bir mimariye uygun olup olmadığını görmenizi isteyeceğim.
Veri Erişim Katmanımdaki (kısaca DAL) yöntemler oldukça basittir. Veritabanındaki saklı yordamlarla uyumludur (işleri temiz tutmak için onu çağırmanın başka bir yolu yoktur) ve yordamlarla aynı parametreleri içerirler. Daha sonra veritabanına bağlanırlar ve sorgu sonucunu döndürürler. İşte bir örnek:
public int DeleteRecord(int recordId)
{
recordId.RequireThat("recordId").NotZeroOrLess();
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter { ParameterName = "@RecordId", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Input, Value = recordId});
return this.ExecuteNonQuery("DeleteRecord", parameters.ToArray());
}
Sonuç kümesi ile anlamlı bir şey yapmıyorum çünkü bu yöntem için mükemmel çalışır. Sadece komutun çalıştığından emin olmak istiyorum, bu yüzden sadece etkilenen satırlar olan sorgu olmayan sonucu döndüreceğim ve bu sayıyı kullanarak mantığı doğrulayabilirim.
Ancak, başka bir DAL yönteminde, bir kayıt yüklemek istiyorum diyelim. Benim yük prosedürü yürütme olacak selects
tabloların bir grup ve bir dönülmesine karşı DataSet
ama İş oluşturmalısınız benim DAL kullanarak yöntemi içinde Nesneleri olup olmadığı mücadele ediyorum DataSet
, ya benim İş Nesneleri eğer kendilerini sadece olmalı Load()
alır yöntemi DataSet
ve daha sonra temelde kendini doldurur.
Bunu DAL üzerinden yapmak İş Nesnelerinde daha az mantıkla sonuçlanır (bu sadece belirli bir mantık olsa da, yine de mantıktır), ancak DAL'ı biraz kalabalıklaştıracak ve gerçekten yapmaması gereken bir şey yapıyormuş gibi hissettirecek ' yapmıyorum.
Siz ne düşünüyorsunuz?