C# 找不到源类型“Join”的查询模式的实现
对于ASP.net和MVC来说是个新手,到目前为止,一切都进展顺利。今天访问了数据库,还有什么!?我很困惑,也不确定哪里出了问题。我正在尝试使用LINQ到SQL至少,我想我是。。。让我向您介绍数据库的场景,以帮助您更好地理解代码正在做什么 我们有三张桌子,库存,位置和设备。库存包含库存、名称等的所有数据。位置包含LocationID和LocationName,而设备包含EquipmentID和EquipmentName。库存也包含EquipmentID和LocationID 我想显示站点参考,设备ID转换为设备名称,位置LocationID转换为设备名称 我有以下代码: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 我想显示站点参考,设
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排在第一位,但它只是将错误改为右侧,而不是左侧。有什么想法吗?