Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Linq2Sql: Wie am besten Model-Klassen aufbauen...
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

Linq2Sql: Wie am besten Model-Klassen aufbauen...

beantworten | zitieren | melden

verwendetes Datenbanksystem: <sql 2005 / 2008>

Hi,

Ich werkel grad etwas mit ASP.net mvc2 und Linq to SQL rum..

Nun bin ich aber am überlegen was "gutes Design" für die Model-Klassen ist.

Ich verwende Linq2Sql rein für den Datenbankzugriff und mache
"eigene" Model-Klassen die ich dann per linq2sql befülle..

Also z.b.:


class Category
{
     public int CategoryId { get; set; }
     public string Name { get; set; }
     pubic string Description { get; set; }
     ...
}

und per linq to sql dann:


IQueryable<Category> = from c in db.Categories 
                                      select new Category 
                                     { 
                                           CategoryId = c.CategoryId,
                                           Name = c.Name,
                                           Description = c.Description
                                           ...  
                                      };


der query is zb. in einer Methode "GetCategories".

Wenn nun wie bei Categorien Produkte enthalten wären...

Ist es besser eine Methode "GetProducts(int CategoryId)" zu erstellen
die mir alle Produkte für die Category zurückgibt.
Oder die Produktliste direkt als Member der Klasse Category anzulegen.

also:


class Category
{
     public int CategoryId { get; set; }
     public string Name { get; set; }
     public string Description { get; set; }
     public IQueryable<Product> Products { get; set; }
     ...
}

und per linq to sql dann:


IQueryable<Category> = from c in db.Categories 
                                      select new Category 
                                     { 
                                           CategoryId = c.CategoryId,
                                           Name = c.Name,
                                           Description = c.Description
                                           Products = from p in db.Products...
                                      };
oder...


IQueryable<Category> = from c in db.Categories 
                                      select new Category 
                                     { 
                                           CategoryId = c.CategoryId,
                                           Name = c.Name,
                                           Description = c.Description,
                                           Products = GetProductsByCategory(c.CategoryId)
                                           ...
                                      };

Im "Vollausbau" würde dann die Methode "GetCategories"
Alle Kategorien zurückliefern.
Jede Kategorie hätte dann zusätzlich
ein Objekt "Image",
ein Liste/Iqueryable "Products", (diese hätte dann wieder Varianten, Images,Files, Preise, Spezifikationen,...)
ein wieder Liste/Iqueryable "Categories" => und von vorn... ;)

Und dass das alles die Methode "GetCategories" zurückgibt macht mich etwas stutzig...

Ich hoffe das ist einigermaßen verständlich... bin selber grad etwas verwirrt.. ^^

lg
private Nachricht | Beiträge des Benutzers