Как установить предложение Where для EntityDataSource в коде - PullRequest
3 голосов
/ 22 июля 2011
        PaymentsDueEntityDataSource.ContextTypeName = "Bills.DAL.BillsEntities";
        PaymentsDueEntityDataSource.EnableFlattening = false;
        PaymentsDueEntityDataSource.EntitySetName = "tblPayments_Due";

        PaymentsDueEntityDataSource.Where = "it.UserName = " + HttpContext.Current.User.Identity.Name.ToString();

        PaymentsDueEntityDataSource.Include = "tblType, tblRepeat";
        PaymentsDueEntityDataSource.EnableUpdate = true;

Когда я удаляю предложение Where, мой gridview возвращает все записи. Когда я жестко кодирую ту же строку, которая генерируется из строки HttpContexxt в HTML, мой gridview возвращает правильные записи. Однако, когда я пытаюсь использовать приведенный выше код, я получаю сообщение о выходе из области видимости:

«kwingat» не может быть разрешен в текущей области или контексте. Убедитесь, что все ссылочные переменные находятся в области видимости, что необходимые схемы загружены и что на пространства имен ссылаются правильно. Рядом с простым идентификатором, строка 6, столбец 15.

Есть идеи?

1 Ответ

2 голосов
/ 22 июля 2011

Я думаю, вам нужно передать его в качестве параметра

PaymentsDueEntityDataSource.Where = "it.UserName = @UserID";
PaymentsDueEntityDataSource.WhereParameters.Add(new Parameter("UserID", TypeCode.Int32,  + HttpContext.Current.User.Identity.Name.ToString()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...