SELECT Meter.SerialNumber as serial,
SupplyPoint.Id as supplypoint,
SupplyType.Id as supplytype,
SupplyType.Name as supplytypename
FROM Meter
INNER JOIN SupplyPoint ON Meter.SupplyPointId = SupplyPoint.Id
INNER JOIN SupplyType ON SupplyPoint.SupplyTypeId = SupplyType.Id;
我有这个查询,以便我可以根据它的序列找到仪表的供应类型。到目前为止,我已经写了这个函数:
var query = from meters in db.Meters
join supplyPoint in db.SupplyPoints on meters.SupplyPointId
equals supplyPoint.Id
join supplyType in db.SupplyTypes on supplyPoint.SupplyTypeId equals
supplyType.Id
select new { serial = meters.SerialNumber, type = supplyType.Name };
foreach (var meter in query)
{
if (meter.serial == serial)
return meter.type;
}
return "Meter Type Not Specified";`
所以我调用FindType(字符串序列)并返回类型。任何人都可以建议更好的代码转换这样的查询?任何有关LINQ的更多信息的指示也是受欢迎的。
答案 0 :(得分:2)
在开始之前,你需要阅读相当多的资料。
答案 1 :(得分:0)
在不了解您正在使用的内容的情况下,为您提供具体帮助几乎没有什么可做的。首先,您希望熟悉将sql语句转换为LINQ。
LINQ具有以from开头的查询语法,因为这是如何定义数据源的。 SELECT FirstName FROM Authors
成为
from auth in db.Authors
select auth.FirstName
其中db是对sluaconter注释中建议的datacontext的引用。
您可以查找有关linq at the following url
的更多信息