C # / ASP.NET лямбда-преобразование - PullRequest
0 голосов
/ 25 июня 2011

Как-то, когда я возвращаю это к моему представлению:

return View(db.Properties.ToList());

Я получаю 3 свойства, одно из которых имеет значение местоположения "Орегон".

Но в другом методе, объявленном так:

public ViewResult Browse(string location)
{
        return View(db.Properties.Where(p => p.location == location).ToList());
}

Я получаю 0 объектов.

Я подозреваю, что строка "location" конвертируется во что-то странное, но я не уверен, каким образом она будет конвертирована. Когда я заменяю лямбда '== location' на '== "Oregon"', я все равно получаю 0 свойств.

Как мне это исправить?

Кроме того, есть ли в любом случае промежуточный SQL, который создается для целей отладки?

РЕДАКТИРОВАТЬ: Это использует структуру лица.

РЕДАКТИРОВАТЬ: сейчас я получаю немного другие результаты. Кажется, входящая строка местоположения пуста (хотя я вижу ее в URL). Я переписал все и разместил его по адресу:

Передача строковых параметров MVC 3

Ответы [ 2 ]

3 голосов
/ 25 июня 2011

Я не могу повторить это - я попробовал следующее ...

    public ActionResult Index()
    {
        var db = new ORMTestEntities();
        var oneprop = db.Properties.Where(p => p.location == "Oregon").ToList();
        ViewBag.Oneprop = oneprop;
        return View(db.Properties.ToList());
    }

    public ActionResult Index2()
    {
        var db = new ORMTestEntities();
        var oneprop = db.Properties.Where(p => p.location == "Oregon").ToList();
        ViewBag.Oneprop = oneprop;
        return View("Index",db.Properties.Where(p => p.location == "Oregon").ToList());
    }

, оба из которых работают как ожидалось.

создав таблицу таким образом

CREATE TABLE [dbo].[Properties](
[Id] [int] IDENTITY(1,1) NOT NULL,
[location] [varchar](50) NULL,
[otherthing] [varchar](50) NULL,
 CONSTRAINT [PK_Properties] PRIMARY KEY CLUSTERED 
 (
[Id] ASC
 ) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,     ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  ) ON [PRIMARY]

Используется стандартная генерация модели EF - нет шаблонов T4, нет «Добавить элемент генерации кода» или что-либо еще.Я бы посоветовал вам начать с нуля и перестраивать одну вещь за раз, чтобы увидеть, где она идет не так.

РЕДАКТИРОВАТЬ: я просто добавил элемент генерации кода "ADO.NET C # POCO Entity Generator" безизменение результатов.

Чтобы ответить на вторую часть вашего вопроса, для просмотра запросов к БД проще всего подключить EFProf http://efprof.com/ - 30-дневная пробная версия должна работать на вас,

0 голосов
/ 29 июля 2011

Вот ответ:

Передача строковых параметров MVC 3

Поскольку параметр не был назван "id", все пошло не так.

...