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

C# 找不到源类型“Join”的查询模式的实现,c#,sql,linq,linq-to-sql,C#,Sql,Linq,Linq To Sql,对于ASP.net和MVC来说是个新手,到目前为止,一切都进展顺利。今天访问了数据库,还有什么!?我很困惑,也不确定哪里出了问题。我正在尝试使用LINQ到SQL至少,我想我是。。。让我向您介绍数据库的场景,以帮助您更好地理解代码正在做什么 我们有三张桌子,库存,位置和设备。库存包含库存、名称等的所有数据。位置包含LocationID和LocationName,而设备包含EquipmentID和EquipmentName。库存也包含EquipmentID和LocationID 我想显示站点参考,设

对于ASP.net和MVC来说是个新手,到目前为止,一切都进展顺利。今天访问了数据库,还有什么!?我很困惑,也不确定哪里出了问题。我正在尝试使用LINQ到SQL至少,我想我是。。。让我向您介绍数据库的场景,以帮助您更好地理解代码正在做什么

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

我想显示站点参考,设备ID转换为设备名称,位置LocationID转换为设备名称

我有以下代码:

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的上下文。

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

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

这样做会导致“InventoryDataContext”不包含tblInventory的定义,并且找不到接受第一个参数类型“InventoryDataContext”的扩展方法tblInventory是否缺少指令或程序集引用?有时linq会使表名复数。这会不会导致“InventoryID=tblInventory.InventoryID'?因为这是唯一一行得到错误。啊,我现在明白你的意思了:。遇到另一个问题,但将研究它,看看它是否相关,如果相关,则发布解决方案,并将此设置为已回答。尝试研究该问题,但无效。他试着按照错误信息所说的去做,但还是不起作用名称tblInventories不在“equals”左侧的范围内。考虑在“相等”的两边交换表达式。这里写着“在tblInventories.EquipmentID等于tblEquipment.EquipmentID”。我把它换了一圈,所以tblEquipment.EquipmentID排在第一位,但它只是将错误改为右侧,而不是左侧。有什么想法吗?