Dot*_*ude 10 orm entity-framework entity-framework-4
这三种类型的装载有什么区别?有人能解释一个例子吗?在线不同的资源使用不同的定义,导致比必要的更多混乱.
延迟加载和延迟是相当的同义词(AFAIK,如果我错了,请纠正我).Eager和Lazy之间的最大区别.渴望发生在前面,懒惰只在"按需"发生,执行将在DB级别发生 - 让我们以一个简单的JOIN语句为例
var people = (from p in people SELECT p).ToList();
var jobs = (from j in jobs SELECT j).ToList();
var peopleAndJobs = (from p in people JOIN j on j.personId equals p.personId SELECT p).ToList()
Run Code Online (Sandbox Code Playgroud)
这是急切加载的一个例子.我们得到所有人,所有工作,我们正在加入记忆.不是很聪明(通常).这就是懒惰风格.
var people = (from p in people SELECT p);
var jobs = (from j in jobs SELECT j);
var peopleAndJobs = (from p in people JOIN j on j.personId equals p.personId SELECT p).ToList()
Run Code Online (Sandbox Code Playgroud)
这样做是为人和工作创建一个IQueryable(IQueryable是懒惰的),并且连接发生在数据库中.这节省了网络活动,并且通常实际上更快,因为DB已经过优化以进行连接等.
除非我们明确说"我需要那些数据!" (通过ToListing,迭代它等)它是懒惰的.还有一些更多的怪癖,但这应该是一个不错的入门.
归档时间: |
|
查看次数: |
2860 次 |
最近记录: |