2017-07-28 49 views
1

我與小巧玲瓏的一個新手,我複製這個SQL腳本(從一個測試,我與實體框架做),並試圖返回論文行的名單,但其返回整個類而不僅僅是我想要的!小巧玲瓏沒有返回選擇/所需的行

using (IDbConnection connection = new SqlConnection(@"Data Source=DESKTOP-CD2UQI5\SQLEXPRESS;Initial Catalog=ServerContext;Integrated Security=True")) 
     { 
      var res = connection.Query<Table>("select Images,AddressFrom, from Table where Table.id = 1").ToList(); 
      response = Request.CreateResponse(HttpStatusCode.OK, res); 
     } 

請幫助。

+0

_entire Class_是什麼意思? –

+0

顯示的查詢是無效的......所以我100%肯定這不是真正顯示問題的指示性代碼,因爲這可能只會拋出一個'SqlException'(從數據庫服務器,與精靈無關) –

回答

1

Dapper不會對您的SQL進行任何處理(在某些非常有限的情況下,它會對)。所以:無論被返回是因爲查詢 - 這是不會改變的查詢刪除where條款,並沒有發明了數據。

如果你的意思是它返回低於預期,然後再列:檢查您的查詢。在提問中顯示的一個無效(尾隨在select逗號),所以我真的不能評論基於這個問題。檢查一個流氓*

所以說:把你的查詢,並嘗試運行它SSMS或其他SQL工具;查看哪些行和列回來。

如果Table.id是一個獨特的/主要/身份/ etc,那麼是,似乎很奇怪獲得多個,但:我不知道從這裏發生了什麼,除了:dapper只是運行您的查詢。

小點:如果你希望只有一個或最多一個結果

  • AsList()最好將ToList()
  • ,有一些方法來做到這一點更有效地 - QuerySingle
  • 如果id不固定,您可能想要使用參數,例如:

    int id = ... 
    var res = connection.Query<Table>(
        "select Images,AddressFrom, from Table where Table.id = @id", new { id } 
    ).AsList(); 
    
+0

我圖什麼的問題是,我仍然使用的EntityFramework類爲'查詢

'。不管sql腳本,只是一個部分代碼,只是爲了查看可能是錯誤的,因爲我說過,我在SQL服務器上做了同樣的查詢!謝謝! –