我有一个简单的asp.net数据库程序。我有一个名为ChristmasTickets的数据库,其中包含以下数据:
ID,BARCODENUM,NAME,EMAIL,ETC。

我可以做一个简单的查找,是否有人搜索ID,因为它是键标识符。

ChristmasTickets ChristmasTickets = db.ChristmasTicketsDb.Find(id);


但是在我的HTML中,我试图允许用户通过BarcodeNum而不是ID进行搜索。如果找到了BarcodeNumber,则尝试提取ID号。

到目前为止,我已经有了这段代码,这确实给了我一些帮助。

[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中提取ID号的正确方向。

谢谢

最佳答案

db.ChristmasTicketsDb.Where(x => x.BarcodeNum == BarcodeNum);将为您提供IQueryableChristmasTickets

据推测,这些都不是其中之一。

要获取要搜索的实际元素,可以使用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

}

07-26 09:36