我正在努力定义一个填充和返回实例集合的类方法。我不知道如何解决的问题是我有私有属性来填充。如何编写返回实例集合的类方法
让我们用一个Book类的例子。我不希望代码直接设置(说)一本书的可用性。我希望代码必须在Book实例上使用CheckOut方法。因此,我们有这样的:在我的代码
public class Book
{
private int ID;
private bool pAvailableForCheckout;
public string Title { get; set; }
public bool AvailableForCheckout { get { return pAvailableForCheckout } }
// instance methods
public Book(int BookID)
{
// Load book from DB by ID
}
public CheckOut()
{
// perform everything involved with checking a book out
}
// .. other methods like saving a book, checking out books etc.
// class method
public static List<Book> FindAll()
{
// load Dataset of books
// foreach record in DB, use the Book(int BookID) constructor and add to List
// return list of books
}
}
所以,我可以做到使用本:
foreach(Book curBook in Book.FindAll())
{ /* do something with book */ }
上述实现的问题是,我必须使用N + 1命中数据库加载所有书籍而不是仅仅一个查询。我如何解决这个问题?
我确定这是编程101,但我需要问。
不错,我什至没有想到这一点,但当你说出来时,它似乎很明显。 – 2009-02-17 15:34:49