Приведенный ниже код работает для случаев, когда в таблице «Кредитная карта» уже есть записи для пользователя, который вошел в систему; однако, когда пользователь не имеет записи в таблице кредитных карт, запрос находит нулевые записи, как ожидалось. Проблема заключается в том, что инструкция maxccid = query.Maxccid(); возвращает исключение Null и исключение InvalidOpeation. Я не могу сделать поле ccid в базе данных нулевым, поскольку оно является частью первичного ключа. Мне нужен способ определить, будет ли этот запрос возвращать нуль до того, как я его запустил, или способ его уловить (желательно без попытки улова, так как это условие будет иметь место для каждого нового клиента (лучшие практики для Try/Catch state это Неправильное использование Try/Catch). Просто добавьте, что я использую Entity Framework.Как я могу обнаружить или обработать результат Null Query в MVC?
ОБНОВЛЕНИЕ 4/9/14: Я изменил запрос, чтобы исправить проблему, о которой я сообщал в комментариях к Usesr FailedProgramming и Майк. Я до сих пор есть нулевая проблема, хотя.
// Create CreditCard - Write to DB
public ActionResult Create(CreditCard model)
{
EntitiesContext context = new EntitiesContext();
int uid = (int)WebSecurity.GetUserId(User.Identity.Name); // Currently logged-in user
short? maxccid = 0; //this will be the max ccid for this user
var query = from c in context.CreditCards
where c != null && c.UserId == uid select c.CCID;
maxccid = query.Max();
как насчет if (запрос.Any()) maxccid = query.Max(); – failedprogramming