为什么我要使用带有转发器和EF的ToList()方法

时间:2016-09-09 08:49:59

标签: c# entity-framework

我正在使用sql server数据库和实体框架(版本6)。

查看代码背后的代码:

public partial class WebForm1 : System.Web.UI.Page
{
    private bdd1Entities bdd = new bdd1Entities();

    protected void Page_Load(object sender, EventArgs e)
    {
            Repeater1.DataSource = bdd.Personnes.ToList();
            Repeater1.DataBind();
    }
}

这是aspx页面中的转发器源:

    <asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <tr>
            <td><%# DataBinder.Eval(Container.DataItem, "Nom")  %></td>
        </tr>
    </ItemTemplate>
    </asp:Repeater>

它工作正常,但如果我在后面的代码中删除ToList()函数调用,我得到了

  

此异常:System.NotSupportedException

我不明白为什么。我只是想了解谢谢

1 个答案:

答案 0 :(得分:0)

Repeater控件支持对实现System.Collections.IEnumerable接口的任何对象(例如DataView,ArrayList,Hashtable等)或IListSource接口的数据绑定。在您的情况下,上述任何接口与“Personnes”实例之间可能不存在任何隐式对话。这就是您需要将其转换为List或将其转换为源接口类型的原因。