В первой, у меня есть переменная в моем контроллере в результате запроса магазин Linq, как показано ниже:MVC LinQ IQueryable Anonymous обработка Тип
var test= from m in db.testTable
join n in db.testTable2
on m.ID equals n.ID into tabA
from a in tabA
join o in db.testTable3
on m.UserID equals o.ID
select new { .................};
if (test.Count() > 0)
{
foreach (var k in test)
{
ViewData["dropDown_xxx"] = test.Select(j => new { Value = j.ID, Text = j.Description})
.AsEnumerable()
.Select(j => new SelectListItem // Work with in-memory objects using LINQ to Objects instead of LINQ to Entities
{
Value = j.Value.ToString(),
Text = j.Text
}).ToList();
}
Вышеприведенные работает отлично, и я в состоянии генерировать DropDownList и ViewData.
Теперь я пытаюсь перенести этот запрос Linq в другой класс вместо того, чтобы в этом контроллере, как показано ниже:
public class testClass{
public IQueryable<dynamic> TestMethod(){
return from m in db.testTable
join n in db.testTable2
on m.ID equals n.ID into tabA
from a in tabA
join o in db.testTable3
on m.UserID equals o.ID
select new { .................};
}
}
А теперь называю это в моем предыдущем контроллере:
var test= new testClass().TestMethod();
if (test.Count() > 0)
{
foreach (var k in test)
{
ViewData["dropDown_xxx"] = test.Select(j => new { Value = **j.ID**, Text = **j.Description**})
.AsEnumerable()
.Select(j => new SelectListItem // Work with in-memory objects using LINQ to Objects instead of LINQ to Entities
{
Value = j.Value.ToString(),
Text = j.Text
}).ToList();
}
Могу ли я знаете, что не так с кодом? В J.ID и J.Description это теперь жалуется, что выражение дерево не может содержать динамическую операцию
Есть ли другой способ лучше, чем создавать новый класс? Я могу отказаться от использования «динамического», если есть обходное решение, отличное от создания нового класса. –
. Мой плохой для того, чтобы четко не указать язык, который использовался. На самом деле это MVC, и, следовательно, не существует никакого метода CAST, как показано в общей ссылке. Спасибо за вашу помощь. –