2

我有一个 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。也许有一个很好的理由?

4

3 回答 3

1

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

double Mass = dbMTG.MountingSpecs
      .SqlQuery<double>("SELECT DISTINCT Mass WHERE Class == 3")
      .First();
于 2013-07-19T17:53:23.997 回答
1

您应该能够使用一些简单的 LINQ 来完成此操作:

var Mass = dbMTG.MountingSpecs
           .Where(m => m.Class == 3)
           .Select(m => m.Mass)
           .FirstOrDefault();
于 2013-07-19T17:59:05.603 回答
1
Nullable<double> Mass = dbMTG.MountingSpecs.Where(spec => spec.Class == 3).Select(spec => spec.Mass).Distinct().FirstOrDefault();
于 2013-07-19T18:00:04.650 回答