我有一个方法给了我一个对象列表例如使用语句的范围
public IEnumerable<Person> GetPerson()
{
using (myEntities ctx = new myEntities())
{
return ctx.Person.Where(x => x.Age < 50);
}
}
别的地方当我打电话FirstOrDefault()
选择被genereated和数据从数据库中检索我用这个方法
public void Main()
{
var pList = GetPerson();
pList = pList.Where(x => x.Age < 40);
Person Item = pList.FirstOrDefault(); //materialization here
}
。
问题:using (myEntities ctx = new myEntities())
的范围是否达到物化?
一方面,它的理由是因为它管理数据库的选择/连接,并且在实现中生成 - 另一方面,它在方法外调用,可能在代码中的任何地方 - 在使用之外指令
我已经编辑你的问题的标题,因为这是一个使用*语句*,而不是使用*指令*。 –
您是否尝试执行该代码,它工作? –