为什么我要对中继器和EF使用ToList()方法?
本文关键字:ToList 方法 使用 EF 我要 中继器 为什么 | 更新日期: 2023-09-27 18:06:15
我正在使用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()函数调用,我得到
this exception: System。NotSupportedException
由于
我不明白为什么。我只是想明白谢谢
Repeater控件提供了对实现System.Collections.IEnumerable
接口(如DataView,ArrayList, Hashtable等)或IListSource
接口的任何对象的数据绑定支持。在您的情况下,可能不存在从上述任何一个接口到您的"Personnes"实例的任何隐式对话。这就是为什么需要将其转换为List
或将其转换为源接口类型。