如何链接来自MVC5不同类的两个ID以显示某些信息



我试图将 restaurantid 链接在 restauranteraverventeventstbl 中> Restauranttbl 显示仅针对当前登录餐厅进行的预订。

我在我的代码运算符中收到以下错误==无法应用于INT类型和IQuerable Int

的操作数

这是我在家庭控制器中所做的

var RestaurantIDRestaurantTbl = from r in db.Restaurants select r.RestaurantID;
//var listOfRestaurantsReservations = db.RestaurantReservationEvents.ToList();
var listOfRestaurantsReservations = db.RestaurantReservationEvents.Where(x => x.RestaurantID == RestaurantIDRestaurantTbl).ToList();
//return View(restaurants.Where(x => x.RestaurantEmailAddress == UserEmail).ToList());
//create partial view called _RestaurantReservation
return PartialView("_RestaurantReservations", listOfRestaurantsReservations); 

您必须更改代码才能实现restaurantIds

var RestaurantIDRestaurantTbl = (from r in db.Restaurants
                                 select r.RestaurantID).ToList();

然后,您可以将代码更改为下面的代码以进行比较:

 var listOfRestaurantsReservations = db.RestaurantReservationEvents.Where(x => RestaurantIDRestaurantTbl.Contains(x.RestaurantID)).ToList();

无论如何,这不是最好的解决方案。我将为您编写另一个示例,只需尝试此示例是否有效,请告诉我结果。

我会考虑将代码更改为以下更有效:

var listOfRestaurantsReservations = (from r in db.Restaurants
                                    join e in  db.RestaurantReservationEvents 
                                    on r.RestaurantID equals e.RestaurantID
                                    //where r.RestaurantID == something //if where condition needed
                                    select e).ToList();

如果您的桌子与外国人没有连接

如果您的表与文档文章相关,则可能有类似的内容:

var RestaurantIDRestaurantTbl = db.Restaurants.SingleOrDefault(x => x.RestaurantID == something);
if(RestaurantIDRestaurantTbl != null)
{
   var listOfRestaurantsReservations = RestaurantIDRestaurantTbl.RestaurantReservationEvents.ToList();
}
{
    // This will give you a list of IDs
    var RestaurantIDRestaurantTbl = db.Restaurants
        .Select(p => p.RestaurantID)
        .ToList();
    // Using .Any() is a better choice instead of .Contains()
    // .Contains is used to check if a list contains an item while .Any will look for an item in a list with a specific ID
    var listOfRestaurantsReservations = db.RestaurantReservationEvents
        .Where(p => RestaurantIDRestaurantTbl.Any(r => r.pRestaurantID == p))
        .ToList();
} 

最新更新