格式化dbcontext sql查询

时间:2013-07-19 17:48:00

标签: c# sql asp.net-mvc-4 dbcontext

我有一个dbContext设置,在使用.find()命令搜索键值时可以正常工作。例如,以下语句将返回与传入的UnitID匹配的键的质量值:

double Mass = dbMTG.MountingSpecs.Find(UnitID).Mass;

在搜索除键以外的值时,如何返回Mass值?我用sqlquery玩了一点,没有任何成功。我试过了

double Mass = dbMTG.MountingSpecs.SqlQuery("SELECT DISTINCT Mass WHERE Class == 3");

我看过很多关于sqlquery的帖子,但没有一个人使用dbcontext。也许有充分的理由呢?

3 个答案:

答案 0 :(得分:1)

如果你确定只有一个结果我会说你可以做到

double Mass = dbMTG.MountingSpecs
      .SqlQuery<double>("SELECT DISTINCT Mass WHERE Class == 3")
      .First();

答案 1 :(得分:1)

您应该能够使用一些简单的LINQ来实现这一目标:

var Mass = dbMTG.MountingSpecs
           .Where(m => m.Class == 3)
           .Select(m => m.Mass)
           .FirstOrDefault();

答案 2 :(得分:1)

Nullable<double> Mass = dbMTG.MountingSpecs.Where(spec => spec.Class == 3).Select(spec => spec.Mass).Distinct().FirstOrDefault();