Linq to SQL veritabanı modelinde oluşturulan kısmi bir Cart sınıfını genişletiyorum (burada doğru sözcük olup olmadığından emin değilim).Yapıcıdaki iş mantığı - C#/Linq'den Sql'ye
İş mantığı, müşteri başına yalnızca bir Cart olabileceğidir. Bir müşterinin bir arabası yoksa, oluşturulmalıdır; Bir müşterinin arabası varsa, iade edilmelidir.
İşte yapıyorum:
public partial class Cart
{
//the rest of the Cart class is in the .dbml file created by L2S
public Cart(int userId)
{
Cart c = GetCurrentCart(userId);
this.CartId = c.CartId ;
this.UserId = c.UserId;
}
public Cart GetCurrentCart(int userId)
{
Cart currentCart = new Cart();
// if cart exists - get it from DB
//if not - create it, save in DB, and get if right out
//all of this is done with Linq to SQL
return currentCart;
}
}
sadece doğru görünmüyor yapıcı bir yöntemin çağrılması. İş mantığını doğru şekilde uyguluyor muyum?
iyi nokta. Kodumda yanlış bir şey var mı, bunun yanında DDD yolu yazılmıyor mu? –
Sanırım yayınladığınız kod sayesinde, yapıcıdaki veritabanı aramalarının doğru şey olup olmadığı konusunda kendinizden emin değildiniz. En kötü suç olmasa da, biraz kod kokusu. Bence bu içgüdülerin iyi olduğu bir durum. –
Kod kokusu ile demek istediğim, muhtemelen yapmaktan kaçınmak isteyeceğiniz bir şey (içgüdülerinizin önerdiği gibi). Yani alternatif bir tasarım arayışı (sorunlu alan için daha mantıklı olan, daha teknik açıdan temiz olanı) iyi bir fikirdir. –