Я использую следующий код, чтобы сначала проверить, находится ли строка где-то в столбце в моей базе данных.Если это так, то мне нужно проверить, удовлетворяются ли несколько дополнительных критериев, просматривая различные части базы данных (можно увидеть в коде ниже).Я не уверен, если это эффективный метод для этого или есть гораздо более простой способ:
(от моего контроллера)
[HttpPost]
public ActionResult Index(FormCollection sampleKey)
{
string code = sampleKey["sampleCode"];
ViewBag.code = code;
// Need to check if this code is active
var order = db.Orders.SingleOrDefault(
o => o.OrderCode == code
&& o.Active == true);
if (order == null)
{
//Invalid
}
else
{
var orderIdent = db.OrderDetails.SingleOrDefault(
p => p.OrderDetailId == order.OrderId);
var barIdent = db.Drink.SingleOrDefault(
q => q.EstablishmentsID == orderIdent.DrinksId);
var barName = db.Establishment.SingleOrDefault(
r => r.EstablishmentsId == barIdent.EstablishmentsID);
ViewBag.barId = barName.name;
ViewBag.sample = order.Email;
var custProfile = CustomProfile.GetUserProfile();
if (custProfile.OwnedBar != barName.name)
{
//Not a match
}
else
{
//Match
}
}
return View();
}
Это что-то беспокоиться?Есть ли более эффективный способ выполнения действий, которые я сейчас выполняю?Должен ли я изменить первую таблицу, на которую ссылаются, чтобы включить данные из таблицы, с которой я в конечном итоге сравниваю ее, чтобы избежать того, что кажется неэффективным способом сравнения информации из разных таблиц?