使用LINQ查询SQL数据库

时间:2017-07-31 11:30:11

标签: c# sql visual-studio linq

 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的更多信息的指示也是受欢迎的。

2 个答案:

答案 0 :(得分:2)

在开始之前,你需要阅读相当多的资料。

  1. 了解实体框架here
  2. 阅读LINQ to SQL here
  3. 希望,一旦你做到了,你会发现你的问题归结为以下代码。

    var result = context.YourTable.FirstOrDefault( r => r.Field == searchValue );
    

答案 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

的更多信息