找不到源类型“Join”的查询模式的实现

时间:2015-02-24 11:37:43

标签: c# sql linq linq-to-sql

ASP.net和MVC的新手,迄今为止的一切都很顺利。今天到了数据库,什么!?我很困惑,不确定我在哪里出错了。我正在尝试使用LINQ to SQL(至少,我认为我是......)。让我给你一个数据库的场景,以帮助你更好地理解代码正在做什么。

我们有三个表,库存,位置和设备。库存包含库存,名称等的所有数据。位置包含LocationID和LocationName,而设备包含EquipmentID和EquipmentName。 Inventory也包含EquipmentID和LocationID。

我想显示Station Reference,Equipment(EquipmentID转为EquipmentName)和Location(LocationID转为EquipmentName)。

我有以下代码:

InventoryDataContext context = new InventoryDataText();

public ActionResult Index()
{
    IList<InventoryModel> inventoryList = new List<InventoryModel>();
    var query = from tblInventory in context
                join tblEquipment in context
                on tblInventory.EquipmentID equals tblEquipment.EquipmentID
                join tblLocation in context
                on tblInventory.LocationID equals tblLocation.LocationID
                select new InventoryModel {
                    InventoryID = tblInventory.InventoryID,
                    StationReference = tblInventory.StationReference,
                    EquipmentID = tblEquipment.EquipmentID,
                    EquipmentName = tblEquipment.EquipmentName,
                    LocationID = tblLocation.LocationID,
                    LocationName = tblLocation.LocationName
                };

}

除了一个错误之外,一切似乎都很好,这是:

  

无法找到源类型“InventoryDataContext”的查询模式的实现。找不到“加入”。

这是第一个似乎给出错误的上下文(var query = from tblInventory in context)。

1 个答案:

答案 0 :(得分:2)

您的语法不正确。您需要指定要使用的上下文中的哪个表。

var query = from inv in context.tblInventory 
            join eq in context.tblEquipment
              on inv .EquipmentID equals eq .EquipmentID