在我们当前的一个项目中针对 SQL Server 数据库使用 EF4 并遇到了性能问题。假设我有下面的 Book 和 Author 类(未编译,仅出于示例的目的)。
public class Book
{
public Author Author { get; set; }
}
public class Author
{
public List<Book> Books { get; set; }
}
可以轻松加载一本书,但是当按以下方式将作者分配给一本书时,即使从未显式访问 Books 属性,也会运行查询以查找作者的所有书籍
在我们的真实示例(不是书籍和作者)中,这可能会加载数千个永远不会使用的对象。没有花哨的 getter/setter 可以触发这个。
关于可能导致问题的任何想法?删除图书列表时不会运行查询,但在某些情况下可能会合法使用。
谢谢,约翰