ile hiyerarşik sınıf yapısı Dolum:Böyle bir hiyerarşik sınıf yapısı var verilerle
Kategori -> Şablon -> Örnek
bir kategori birden şablonları içeren bir şablon birden çok örneği içeriyor.
CategoryID | CategoryName | CategoryType | TemplateID | TemplateName | TemplateXYZ | InstanceID | InstanceName
1 | "CatA" | "TypeX" | 1 | "TempA" | "X" | 1 | "InstA"
1 | "CatA" | "TypeX" | 1 | "TempA" | "X" | 2 | "InstB"
1 | "CatA" | "TypeX" | 1 | "TempA" | "X" | 3 | "InstC"
1 | "CatA" | "TypeX" | 1 | "TempB" | "Y" | 4 | "InstD"
(sadece bir örnek, gerçek veri tabloları çok daha fazla sütuna sahip)
: Ben her 3 tablolar üzerinde katılmak yoluyla veritabanından veri sorgulamak durumunda, veri şuna benzer
Bir veri okuyucusu ile dolaşırken bu tür verilerle sınıfları doldurmak için C# 'daki en iyi/ortak yol hangisidir?
while(data.Read())
{
// Create new objects each time the ID changes and read the data from the first row
if(data["CategoryID"] != lastCategoryID) {
lastCategoryID = data["CategoryID"];
cat = new Category(data["CategoryName"], data["CategoryType"]);
catList.Add(cat);
}
if(data["TemplateID"] != lastTemplateID) {
lastTempateID = data["TemplateID"];
template = new Template(data["TemplateName"], data["TemplateXYZ"]));
cat.Templates.Add(template);
}
template.Instances.Add(new Instance(data["InstanceID"], data["InstanceName"]);
}
hiyerarşik sınıf nesneleri doldurmak için daha iyi, daha zarif bir çözüm var mı: ben bu şekilde yapardı başımın tepesinden
? Belki LINQ veya Sözlükler kullanarak?Not: Bu soru, best way to gather hierarchical data from a DB hakkında başka bir soruyla ilgili. Ayrılıyorum çünkü bu iki ayrı konu.
Teşekkür Bunu belirtmek için, bir şablon gerçekten birden fazla kategoride olabilir. Yine de, sadece birinciden birçok sıraya eşit olan veriyi almaktan mutsuz olmama rağmen, daha iyi bir öneri yoksa, bunu bu şekilde uygulayacağım sanırım. – magnattic