实体框架访问数据库方法

时间:2015-05-12 21:35:21

标签: c# entity-framework

我对此非常陌生,所以请原谅我不知道如何恰当地说出这一点。

我已经使用相当大的数据库设置了Entity Framework,并且一直在尝试学习如何操作数据库中的表。

我的第一种方法有效,但我遇到了错误。它会将数据加载到datagridview中,但是当将条滑动以查看不在屏幕上的表时,它会引发错误。这是触发错误的过程:

using (var context = new MydbEntities())
{
    var query = (from a in db.Configurations
                 select a);

    var result = query.ToList();
    dataGridView1.DataSource = result;
} 

现在,如果我将第一行更改为MydbEntities db = new MydbEntities();,我就不会收到错误消息。我试图按照在线教程,但我想也许有人可以帮我理解这两者的不同之处。

1 个答案:

答案 0 :(得分:-1)

基本上,当您尝试查询下一批记录时,您遇到了延迟加载以及Context已被处理的事实。

这里有几个选项,我认为最好的选择是:

  1. 使用EntityDataSource。这样DataControl将负责EF Context实例化和处理。 (MSDN有相当不错的规格)。

  2. 实施自定义ObjectDataSource。在ObjectDataSource方法中使用EF上下文,在需要时实例化并处理它。 (关于这个主题的This article很少过时,但你仍然可以得到这个想法。)