1

我有两个项目的解决方案:一个 webApplication 和一个带有 edmx 和所有实体框架逻辑的 ClassLibrary。这工作正常,但如果我尝试使用强类型数据,就会出现问题。

在后面的代码中我使用这个函数:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.ModelBinding;
using System.Web.UI;
using System.Web.UI.WebControls;
using EDMNearClass;

namespace WebSite
{
    public partial class dettaglio_prodotto : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //Response.Write(Page.RouteData.Values["DESCRIZIONE"]);
        }

        public IQueryable<ProductRepository.DesTagliaP> GetProduct_Taglie([RouteData("Id")] string itemId)
        {
            decimal ProdId = decimal.TryParse(itemId, out ProdId) ? ProdId : 0;
            ProductRepository pr = new ProductRepository();
            var myEnts = pr.taglieProdottiDesGetbyUId(1,ProdId).AsQueryable();
            return myEnts;
        }
    }
}

在 aspx 部分中,我使用以下代码:

<asp:Repeater ID="rpTaglie" runat="server" ItemType="EDMNearClass.ProductRepository.DesTagliaP" SelectMethod="GetProduct_Taglie">
    <ItemTemplate>
        <div class="quanitybox">
            <label for="qty"><%# Item.Codice %></label>
            <asp:TextBox runat="server" ID="quantita" CssClass="input-text qty" />
        </div>
    </ItemTemplate>
</asp:Repeater>

Intellisense 工作并帮助我选择属性EDMNearClass.ProductRepository.DesTagliaP,但在运行时我收到错误。如果我使用Eavl("Codice")并删除ItemType="EDMNearClass.ProductRepository.DesTagliaP",一切正常。

我检查了 /bin 文件夹和 EDMNearClass.dll EDMNearClass.pdb 存在并更新。

我怎么解决这个问题?

4

1 回答 1

0

只是一个猜测 - 但我可以想象中继器绑定不喜欢 IQueryable。我会绑定到 IEnumerable 或只是一个列表。是否会像以下工作一样 - 不仅仅是为了给你一个想法。

 public List<ProductRepository.DesTagliaP> GetProduct_Taglie([RouteData("Id")] string itemId)
        {
            decimal ProdId = decimal.TryParse(itemId, out ProdId) ? ProdId : 0;
            ProductRepository pr = new ProductRepository();
            var myEnts = pr.taglieProdottiDesGetbyUId(1,ProdId).ToList();
            return myEnts;
        }

编辑

我还会尝试将转发器显式绑定到集合,而不是使用 select 方法属性。看到这个答案

使用 ItemType 进行强类型中继器控制?

于 2013-06-06T09:23:55.677 回答