У меня простая программа базы данных asp.net. У меня есть база данных под названием ChristmasTickets с данными для: ID, BARCODENUM, NAME, EMAIL, ETC.
Я могу сделать простую находку, если кто-то искал идентификатор, потому что его ключевой идентификатор.
ChristmasTickets ChristmasTickets = db.ChristmasTicketsDb.Find(id);
Но в моем HTML я пытаюсь разрешить пользователю искать по BarcodeNum, а не идентификатор. Если найден BarcodeNumber, я пытаюсь вывести идентификационный номер.
У меня есть этот код до сих пор, что мне помогает.
[HttpPost]
public ActionResult Search(SearchBarcode model, int BarcodeNum)
{
var FoundRecord = db.ChristmasTicketsDb.Where(x => x.BarcodeNum == BarcodeNum);
//get the ID from quote which does not work....
**int id = //get the id from FoundRecord.**
Trace.WriteLine("GET /ChristmasTickets/Edit/" + id);
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
ChristmasTickets ChristmasTickets = db.ChristmasTicketsDb.Find(id);
if (ChristmasTickets == null)
{
return HttpNotFound();
}
return View(ChristmasTickets);
}
Может кто-то, пожалуйста, укажите мне в правильном направлении, как вывести идентификационный номер из FoundRecord.
Спасибо
db.ChristmasTicketsDb.Where(x => x.BarcodeNum == BarcodeNum);
Вы IQueryable
из ChristmasTickets
.
Предположительно, есть один или ни один из них.
Чтобы получить фактический элемент, который вы ищете, вы можете использовать Linq FirstOrDefault()
(или SingleOrDefault
) вместо Where
:
var christmasTicket = db.ChristmasTicketsDb.FirstOrDefault(x => x.BarcodeNum == BarcodeNum);
if (christmasTicket != null)
{
// found !
// here you can take the id from christmasTicket
}
Вы можете сделать это следующим образом:
[HttpPost]
public ActionResult Search(SearchBarcode model, int BarcodeNum)
{
var FoundRecord = db.ChristmasTicketsDb.SingleOrDefault(x => x.BarcodeNum == BarcodeNum);
if (FoundRecord == null)
{
return HttpNotFound();
}
return View(FoundRecord);
}