1

У меня есть решение с двумя проектами: одна webApplication и одна ClassLibrary с edmx и всей логикой структуры сущности. Эта работа прекрасна, но если я попытаюсь использовать сильно типизированные данные, она начнет проблему.не удалось загрузить тип 'EDMNearClass.ProductRepository.DesTagliaP'

в коде я использую эту функцию:

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 работает и помогаю мне ВЫБИРАЕТ proprerty из EDMNearClass.ProductRepository.DesTagliaP, но во время выполнения я получить ошибку. Если я использую Eavl("Codice") и удаляю ItemType="EDMNearClass.ProductRepository.DesTagliaP", все работает нормально.

Я проверил папку/bin и EDMNearClass.dll EDMNearClass.pdb присутствовал и обновлялся.

Как я могу решить эту проблему?

ответ

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; 
     } 

EDIT

Я хотел бы также попытаться связать ретранслятор явно в коллекцию, а не использовать атрибут выбора метода. Смотрите этот ответ

Using ItemType for strongly typed repeater control?

+0

спасибо за ответ, но я судимый такое же решение с Listview и то же. Я также пробовал ваше решение, но не работаю. –

+0

см. Править для другой мысли. С уважением –

+0

С помощью этого метода я решил проблему, теперь я не понимаю, почему, если я использую, например, 'EDMNearClass.ufnGetProdottiDittaLingua_Result' (тип autogenerate в edmx из TableValueFunction), в Listview он работает. –

Смежные вопросы