Entity Framework class ItemType 未在转发器中显示字段

Entity Framework class in ItemType not showing fields in repeater

我正在使用 Entity Framwework 6 我有一个名为 Action 的 table,我希望它绑定到中继器

<asp:Repeater ID="rpAction" runat="server" ItemType="Action">
    <ItemTemplate>
        <div>
            <%# Item.ActionID %>
        </div>
    </ItemTemplate>
</asp:Repeater>

在代码隐藏中:

 var context = new FPSDB_newEntities();    
 rpAction.DataSource = (from a in context.Actions select a).ToList();
 rpAction.DataBind();

现在出现编译时错误:

Action does not contain a definition of ActionID

尽管 ActionID 是 Action 中的字段之一 Table

当我浏览该字段时,它显示了一些方法,但没有显示 Action table 的字段,如下所示。

这里还有一张图片,可以看到 table 的定义 对于我的 SQL 服务器数据库中的其他 table,相同的代码 运行 没问题。 谁能解决这个问题 谢谢

错误是由于您的 table Action 类型与 .Net 类型 Action<T>.

之间存在冲突

您可以看到它,因为 Intellisense 会向您建议所有适用于 Action<T> 的方法。

https://msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx

您可以做的是重命名您的 table(代码优先)或重命名 table-在 EDMX 中键入它(数据库优先)

编辑: 另一种解决方案是使用 table Action 的完全限定类型名称来避免名称冲突,如下所示:

<asp:Repeater ID="rpAction" runat="server" ItemType="MyNamespace.Action">