Как построить динамический запрос linq - PullRequest
1 голос
/ 30 марта 2010

Я пытаюсь найти лучший способ построить динамический запрос linq и заполнить список. У пользователя будет около пяти различных полей, в которых он может выбрать фильтр. В настоящее время у меня есть следующий код:

   List<TBLPROMOTION> promotionInfo = null;

    bool active = true;
    int storeId = 1

            using (WSE webStoreContext = new WSE())
        {
            promotionInfo =
                webStoreContext.TBLPROMOTION.Include("TBLSTORE").Include("LKPROMOTIONTYPE")
                .Where("STORE_ID==" + storeId + " and IS_ACTIVE == " + active).ToList();
        }

Однако этот пример выдает ошибку, поскольку не может прочитать поля, на которые есть ссылка в предложении where. Не уверен, почему просто увидел этот пример где-то еще и попытался подражать ему. У меня вопрос: есть ли у кого-нибудь пример, который подойдет для моей ситуации?

Спасибо заранее, Билли

Ответы [ 3 ]

2 голосов
/ 30 марта 2010

Возможно, вы думали о Dynamic LINQ . Это позволит вам динамически создавать запросы.

0 голосов
/ 30 марта 2010

Пошёл следующий пример о том, как выполнить эту задачу.

http://blog.bvsoftware.com/post/2008/02/27/How-to-create-a-Dynamic-LINQ-Query-Programmatically.aspx

0 голосов
/ 30 марта 2010

Есть соблазн использовать динамические запросы, они используют более знакомый синтаксис SQL.Я бы рекомендовал против , используя их.Когда вы используете их, вы можете использовать безопасность типов и защиту от атак SQL-инъекций, которые предоставляет Linq.

Вы почти всегда можете создать запрос, используя обычный синтаксис Linq без динамического компонента.И стоит выучить Linq.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...