2013-07-19 88 views
2

我使用.find()命令在鍵值上進行搜索時設置了dbContext設置。例如,下面的語句將返回匹配UnitID關鍵傳入的質量值:格式化dbcontext sql查詢

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

如何回報比其他鍵的值,搜索時Mass價值?我用sqlquery玩了一下,沒有任何成功。我試過

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

我已經看到了一篇關於sqlquery的,但沒有人使用的DbContext。也許有一個很好的理由呢?

+0

發現我最大的問題是我的類名不匹配數據庫表名。一旦我確定,我查看當時提供的三個答案,並發現他們都工作。多謝你們! –

回答

1

您應該能夠使用一些簡單的LINQ來實現:

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

如果你肯定只有一個結果,我說你可以做

double Mass = dbMTG.MountingSpecs 
     .SqlQuery<double>("SELECT DISTINCT Mass WHERE Class == 3") 
     .First(); 
1
Nullable<double> Mass = dbMTG.MountingSpecs.Where(spec => spec.Class == 3).Select(spec => spec.Mass).Distinct().FirstOrDefault();