Поиск строки в одном столбце таблицы в приложении ASP.NET MVC - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть таблица с именем Orders, в которой есть столбец с именем OrderCode, в котором хранится строка, которую я генерирую случайным образом во время создания.

Я хочу убедиться, что эта строка (OrderCode) уникальна, прежде чем сохранить ее в своей таблице.

Как я пытался это сделать:

        bool isUnique = false;
        var order = new Order();
        var code = RandomCode.Generate();
        while (isUnique == false) // checks to see if the code we generated is unique among all generated codes, if not, will generate another code
        {
            var activeOrders = storeDB.Orders.Find("OrderCode", code);
            if (activeOrders == null)
            {
                isUnique = true;
            }
            else
            {
                code = RandomCode.Generate();
            }
        }

        order.OrderCode = code;

Проблема заключается в том, что метод DbSet<TEntity>.Find фактически используется для поиска по первичным ключам - но мне нужно найти строку, которая не является первичным ключом.

Как правильно подходить к этой ситуации?

1 Ответ

0 голосов
/ 21 февраля 2012
if (context.Orders.Any(o => o.OrderCode == code))
{
  // key found
}

if (context.Orders.FirstOrDefault(o => o.OrderCode == code) != null)
{
  // key found
}

Могу ли я спросить, почему вы просто не используете System.Guid хотя (Guid.NewGuid(). ToString())?Это фактически устранит проблему такого рода.

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