首页 新闻 赞助 找找看

Entity Framework 中的DbSet

0
悬赏园豆:5 [待解决问题]

每次读取DBSET,都会重新连接数据?数据不会缓存吗?

例如下面的代码,

using (NorthDb north = new NorthDb())
            {
                IEnumerable<Product> proList = north.Products.Where(a => a.ProductID > 0);

               
                foreach (Product pro in proList) //连接数据库
                {
                    Category cat = pro.Category; //连接数据库

                    string name = cat.CategoryName;
                }

                foreach (Product pro in proList) //连接数据库
                { 
                    Category cat = pro.Category; //不连接数据库

                    string name = cat.CategoryName;
                }               
            }

 

public class NorthDb : DbContext
    {
        public DbSet<Product> Products { get; set; }
        public DbSet<Category> Categories { get; set; }

}

草草了之的主页 草草了之 | 菜鸟二级 | 园豆:206
提问于:2015-04-07 09:28
< >
分享
所有回答(3)
0

你啥都知道了,应该写成博文发表的,这里是博问。

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-04-07 10:13
0

 foreach (Product pro in proList) 时链接了数据库,已经有了对应的实体pro 所以foreach 里面的内容是没有链接数据库的。

Sky.Grain | 园豆:308 (菜鸟二级) | 2015-04-07 11:03
0

对于DbSet对象,Where和First方法会重新连接数据库

Find方法是先在内存中找,找不到再到数据库找。

 

Local是指在内存中找,但是无法找到已删除的对象

草草了之 | 园豆:206 (菜鸟二级) | 2015-04-14 21:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册