EntityFramework 性能优化

1. 查询时如果不缓存数据,可以加快加载速度

            //连接数据库
TestDbContext db = new TestDbContext();
//使用 AsNoTracking() 方法后将不会在 DbContext 中缓存实体数据
var testAList = db.TestAs.AsNoTracking().ToList();
//枚举
foreach(var testA in testAList)
{
Console.WriteLine(String.Format("ID:{0},Count:{1},Name:{2},Remarks:{3},DateTime:{4}", testA.ID, testA.Count, testA.Name, testA.Remarks, testA.DateTime));
}

2. 修改实体时无需事先查询再修改,并且只修改需要的字段

            //新建一个实体对象,其中,ID值必须为数据库中已存在的值,否则会引发异常,其它的属性只需要为要修改的属性赋值即可
var testA = new TestA()
{
ID = ,
Name = "Modify",
};
//连接数据库
TestDbContext db = new TestDbContext();
//将实体对象附加到对应的集合中
db.TestAs.Attach(testA);
//将实体对象中需要修改的属性的修改标识设为true
db.Entry(testA).Property("Name").IsModified = true;
//保存修改
db.SaveChanges();
上一篇:SQL Server 2008删除或压缩数据库日志的方法


下一篇:关于SQL Server 2005 的自动远程数据库备份