什麼是在儲藏庫級別水合對象的子實體的最佳方法。例如:我需要一個系統中所有人的列表。每個人都可以有很多電話號碼。我將如何去填充我的資源庫中的所有這些數據?更好的方法來爲所有子實體提供水合物。
public class Person
{
public int? Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public List<Phone> PhoneNumbers { get; set; }
}
public IEnumerable<Person> GetPeople()
{
var persons = new List<Person>();
const string sql = "SELECT FirstName, LastName, MiddleName FROM Person.Person";
while (reader.Read())
{
var p = PersonFactory.GetPerson(reader);
p.PhoneNumbers = this.GetPhoneByPersonId(p.Id);
persons.Add(p);
}
return persons;
}
public IEnumerable<Phone> GetPhoneByPersonId(int? id)
{
while (reader.Read())
{
numbers.Add(PersonFactory.GetPhone(reader));
}
}
我這個方法的問題是,我正在執行一堆命中DB的sql語句。這似乎不是最好的方法。我不能使用任何框架,並且必須使用DataReader。
我可以採取什麼更好的方法?這也是一個簡單的例子。我的Person對象將會有更多的列表。
+1只是因爲我感到抱歉,你必須重新發明輪子並重新實施一些已經解決的問題。 http://lostechies.com/jimmybogard/2012/07/24/dont-write-your-own-orm/ – Dmitry