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">
我正在使用 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 的定义
错误是由于您的 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">