Во-первых, ваше «глобальное» определение неясно. Вы хотите использовать экземпляр «query» для одного класса или хотите использовать его для всех классов, созданных одним классом.
Во-вторых, если вы хотите использовать в качестве глобального, вы должны определить свою глобальную переменную следующим образом:
List<dynamic> query=new List<dynamic>();
конечно, такой подход не является здоровым способом (динамическое использование с c #)
Кстати, вы не можете использовать ключевое слово "var" вне функций. Вы должны использовать определенный тип переменной назначения на уровне класса.
Определение переменной на уровне класса
В данном фрагменте кода я пытаюсь определить глобальную переменную на уровне класса.
public class MyTestClass
{
List<dynamic> query=new List<dynamic>();
public MyTestClass()
{
}
public void generateQuery()
{
if (model.CategoryId == -1)
{
query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
else
{
query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true && w.CategoryId == model.CategoryId).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
var dataList = (from x in query
select new
{
})
}
}
}
Давайте попробуем осветить другой подход.
Использовать переменную сгенерированного класса в качестве глобальной переменной
В настоящее время вы можете определить свою глобальную переменную в классе предков
public class MyAncestorClass
{
List<dynamic> query=query=new List<dynamic>();
}
public class MyChildClass:MyAncestorClass
{
public void generateQuery()
{
if (model.CategoryId == -1)
{
query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
else
{
query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true && w.CategoryId == model.CategoryId).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
var dataList = (from x in query
select new
{
})
}
}
}