2013-06-03 32 views
0

我試圖設置一個簡單的銀行應用程序,當用戶進行存款時增加了興趣。我在webform上有一個接受存款金額的文本框,當點擊「Submit」時,計算就會發生,但是我得到了「找不到源類型的查詢模式'double'的實現。 'Select'not found。「message in my code。Balance在Accounts類中聲明爲double?很多我已經看到的解決方案是在頂部添加使用的System.Linq命名空間,但是我已經完成了。C#Linq error msg「無法找到源類型查詢模式的實現'double?'。'選擇'未找到

public void GetInterest() 
     { 

      var db = new CelticSavingsBank.Classes.Accounts(); 

      var myBalance = from a in db.Balance 
          select a; 
       db.Balance = myBalance + (myBalance * 0.03);  

     } 

     protected void depositButton_Click(object sender, EventArgs e) 
     { 
      GetInterest(); 
     } 
+1

目前尚不清楚。你的查詢意味着什麼,但是'db.Balance'是一個'可空的'所以你不能使用linq來查詢它。 – Lee

+0

您的查詢沒有意義。 '從x中選擇x'不是讀取數據庫的魔法咒語。 – SLaks

+0

參見http://msmvps.com/blogs/jon_skeet/archive/2008/02/29/odd-query-expressions.aspx – SLaks

回答

4

db.Balance是一個double?

除非你有一個非常奇怪的一組擴展方法,你只能在收集運行LINQ查詢;即,IEnumerable<T>

+0

* pedantry *'IEnumerable '或'IQueryable ' –

+1

@ P.Brian.Mackey: _super-pedantry_'IQueryable的'實現'用於支持LINQ的IEnumerable ' – SLaks

+0

還有一些內置的擴展方法'ParallelQuery '(是的,這也實現了'IEnumerable的',但像'的IQueryable ',除非你有一個非常好的理由,你不應該爲它使用'Enumerable'擴展) – hvd