假設我有這個類位置,它代表位置。T-Sql中的迭代和數組
public class Location
{
public int LocationID { get; set; }
public int JuridictionID { get; set; }
public int LocationName { get; set; }
}
例:銀泉位於蒙哥馬利縣,位於馬里蘭州,這是位於美國。因此,馬里蘭州的JuriditionID將是美國的LocationID等等。
public List<Location> SetHierarchyOfLocation(int JuridicitionID)
{
var list = new List<Location>();
if (JuridicitionID > 0)
{
while (JuridicitionID > 0)
{
var location = new Location();
location = GetLocationByID(JuridicitionID);
list.Add(location);
JuridicitionID = location.JuridictionID;
}
}
list.Reverse();
return list;
}
pubilc Location GetLocationByID(int LocationID)
{
return db.Locations.FirstOrDefault(l => l.LocationID == LocationID);
}
這很好用。但是,現在我意識到它會導致對數據庫的大量單一調用。
但我不知道如何編寫一個存儲過程將取代這一點。有人能幫我嗎???
謝謝。
的SQL Server版本?你可能想看看這個問題:http://stackoverflow.com/questions/202912/hierarchical-data-in-linq-options-and-performance –
sql server 2008. – Richard77
你可能想'管轄權' - 注意* * S **。避免代碼中的拼寫錯誤。 http://programmers.stackexchange.com/questions/30895/should-i-point-out-spelling-grammar-related-mistakes-in-someones-code –