日期:2014-05-17  浏览次数:20992 次

请教一个小问题,Entity Framework创建****Entities时需要using吗?
这是一个查询方法:

/// <summary>
/// 查询所有表
/// </summary>
/// <returns>表信息的集合</returns>
public static List<Get_AllTbs> GetTbs()
{
        using (xxxxEntities xe = new xxxxEntities()) {
            var a=from item in xe.Get_AllTbs select item;
            List<Get_AllTbs> ls = a.ToList();
            return ls;
        }
}

但是有个问题,有的时候我并不需要把a ToList,也许有的时候直接返回IEnumerable<Get_AllTbs>就可以了,但如果我返回IEnumerable<Get_AllTbs>,我在外面使用这个方法返回的IEnumerable<Get_AllTbs>时就会提示连接已关闭...应该是因为Using了的缘故,那这里我到底要不要使用Using呢?

------解决方案--------------------
tolist了就和xe回收不回收没有关系,因为它等于又复制了一份。
------解决方案--------------------
个人感觉没必要
------解决方案--------------------
using}就释放掉了,如果确定不使用了,没问题,但是你又有后续的操作,所以个人觉得可以不用,是否可以用try来替换掉
------解决方案--------------------
不要用,用了反而容易出错
EntityFrame自己维护这部分东西的
------解决方案--------------------
引用:
Quote: 引用:

tolist了就和xe回收不回收没有关系,因为它等于又复制了一份。
我知道啊,我是想问new Entitys时有没有必要使用using?使用using的话是否返回IEnumerable就没有意义了?

tolist就有意义。