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
)。
答案 0 :(得分:2)
您的语法不正确。您需要指定要使用的上下文中的哪个表。
var query = from inv in context.tblInventory
join eq in context.tblEquipment
on inv .EquipmentID equals eq .EquipmentID