使用数据库实体模型调试网页时抛出InvalidCastException

时间:2014-02-11 23:10:42

标签: c# asp.net entity-framework

Screenshot of error being thrown 我正在试图弄清楚如何使用实体数据模型,因为现在我在团队环境中工作,开发人员和数据库开发人员分离,所以我试图快速了解实体数据模型用来。我总是创建自己的数据库和存储过程等...所以必须使用实体模型,这对我来说有点混乱。

我正在使用一本Beginning ASP.NET 4.5数据库书,我做了它所说的事情,当我去调试页面时,它一直在抛出错误,如添加的屏幕截图所示。

以下是代码背后的代码..

using (var db = new DGITestDBEntities())
        {
            this.MyRepeater.DataSource = db.Products.ToList();
            this.MyRepeater.DataBind();
        }

,标记为

<asp:Repeater ID="MyRepeater" runat="server" ItemType="WebApplication13.DGITestDBEntities">
        <ItemTemplate>
            <li>
                <label>
                    Name: <%# Item.Products %> 
                </label>
            </li>
        </ItemTemplate>
    </asp:Repeater>

2 个答案:

答案 0 :(得分:1)

您的转发器实施与我不同。

如果您想在 Products.name 字段中显示产品名称,那么我会这样编码:

<asp:Repeater ID="MyRepeater" runat="server">
    <ItemTemplate>
        <li>
           <label>
               Name: <%# Eval("name") %> 
           </label>
        </li>
    </ItemTemplate>
</asp:Repeater>

对于你的代码设置Repeater DataSource,我认为它应该可以正常工作。

答案 1 :(得分:0)

转发器的项类型定义为DGITestDBEntities,即DbContext。它应该是与Repeater中每个项绑定的类型,即Product ...

<asp:Repeater ID="MyRepeater" runat="server" ItemType="WebApplication13.DGITestDBEntities">

应该是

<asp:Repeater ID="MyRepeater" runat="server" ItemType="WebApplication13.Product">