Entity Framework 仅加载必需的数据
示例
在代码中经常看到的一个问题是加载所有数据。这将大大增加服务器上的负载。
假设我有一个名为“location”的模型,其中有10个字段,但并非所有字段都同时需要。假设我只想要该模型的“LocationName”参数。
不好的例子
var location = dbContext.Location.AsNoTracking()
.Where(l => l.Location.ID == location_ID)
.SingleOrDefault();
return location.Name;好的例子
var location = dbContext.Location
.Where(l => l.Location.ID == location_ID)
.Select(l => l.LocationName);
.SingleOrDefault();
return location;“好示例”中的代码将仅获取“LocationName”,而不会获取其他任何内容。
注意,由于在此示例中没有实体实现,AsNoTracking()因此没有必要。无论如何,没有什么可追踪的。
使用匿名类型获取更多字段
var location = dbContext.Location
.Where(l => l.Location.ID == location_ID)
.Select(l => new { Name = l.LocationName, Area =l.LocationArea})
.SingleOrDefault();
returnlocation.Name+ " 面积为 " + location.Area;与前面的示例相同,仅将从数据库中检索字段“LocationName”和“LocationArea”,“匿名类型”可以容纳任意数量的值。
热门推荐
1 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法