невозможно получить данные из базы данных путем передачи строкового значения в работе фрейма сущности asp. net MVC - PullRequest
0 голосов
/ 30 марта 2020

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

order getCustomerOrder(string or_n)
        {
            using (foodorderingEntities db = new foodorderingEntities ())
            {
                var result = db.orders.Where(or => or.order_no == or_n).FirstOrDefault();
                return result;
            }
        }

, пожалуйста, кто-нибудь поможет мне решить эту проблему.

1 Ответ

0 голосов
/ 03 апреля 2020

Пожалуйста, вставьте объект заказа, чтобы мы знали, является ли его ссылочный объект / примитив и т. Д. c, вы можете использовать это, чтобы понять два способа получения заказов.

Я бы порекомендовал вам прочитать этот ответ и это сравнение строк MSDN , если ваша культура по умолчанию вызывает проблемы при сравнении, это поможет вам понять, что происходит

Опции 1:

// Query syntax
IEnumerable<CustomerOrder> queryResultsCustomerOrder =
    from order in orders
    where order.number == myOrderNumber
    select order;

Опции 2:

// Method-based syntax
IEnumerable<CustomerOrder> queryResultsCustomerOrder2 = orders.Where(order => order.Number == myOrderNumber);

, используя вышеуказанное, теперь вы можете получить столько заказов, сколько у клиента. Я предполагаю, что ваш заказ - это число, но вы можете изменить его на любое, похожее на строку.

Int пример сравнения заказа на основе

 IEnumerable<CustomerOrder> getCustomerOrder(int myOrderNumber)
    {
       if(myOrderNumber <1) return null;

        using (foodorderingEntities dbContextOrderSet = new foodorderingEntities())
        {
            IEnumerable<CustomerOrder> resultsOneOrManyOrders = orders.Where(order => order.Number == myOrderNumber);
            return resultsOneOrManyOrders ;
        }
    }

string сравнение заказов на основе

 IEnumerable<CustomerOrder> getCustomerOrder(string myOrderNumber)
    {
       //no orders
       if(String.IsNullOrEmpty(myOrderNumber)) return null;

        using (foodorderingEntities dbContextOrderSet = new foodorderingEntities())
        {
            IEnumerable<CustomerOrder> resultsOneOrManyOrders = orders.Where(order => order.Number == myOrderNumber);
            // you can replace the *** comparison with .string.Compare and try inside the block

            return resultsOneOrManyOrders ;
        }
    }
...