Има ли начин за достъп до променлива от тип var, дефинирана в кода отзад, от aspx файл?

Linq заявки, съхранявани в променливи от тип var. Бих искал да имам foreach цикли в aspx файла за заявките. Default.aspx.cs:

var query = from ko in entity.Organizations select ko;

Default.aspx:

<%= foreach(var item in query)
{
    <li> item.name </li>
}%>

Обикновено, ако дефинираме публична променлива вътре в класа Page (извън метода Page_Load()), можем да получим достъп до тях в aspx. Но типът var не може да бъде дефиниран като членове на класа.

ДОБРЕ. Сега проблемът е как да поставите "entity.Organization" там, където "?" е. Грешка във времето за компилиране. (Контекстът е от Entity Framework).

  public partial class Default : System.Web.UI.Page
  {

    public Context entity = new Context();
    public IQueryable<?> query;
    ..
 }

person Jude    schedule 25.12.2013    source източник
comment
var не е тип. LINQ заявките имат определен тип, обикновено IEnumerable<T> или IQueryable<T>, който можете абсолютно да дефинирате като член на класа.   -  person Michael Edenfield    schedule 25.12.2013
comment
var не е тип. Той просто казва на компилатора да разбере какъв тип е това за мен.   -  person Daniel Mann    schedule 25.12.2013
comment
Не бих го направил така, но хей, ако искате да е публично, просто го дефинирайте изрично като public IQueryable<Organization> query.   -  person Silvermind    schedule 25.12.2013
comment
Благодаря момчета. Току що редактирах.   -  person Jude    schedule 25.12.2013
comment
var може да бъде тип, ако го декларирате като class var   -  person Yurii Hohan    schedule 25.12.2013


Отговори (1)


Entity Framework DbContext има колекция от вашите обекти, а не самият клас обект, така че за да го използвате IQueryable, това ще работи.

За вашия пример:

public IQueryable<Organization> query;
person Emad Mokhtar    schedule 25.12.2013