2015-03-31 69 views
3

我正在學習ASP.net,特別是WebAPI和MVC。我正在使用Visual Studio社區2013,.NET 4.5和C#。我是一個總福利局所以我實際上是要通過這個特殊的演練,以瞭解事情是如何工作的:將Firebird連接到ASP.net WebAPI項目

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

它已經確定,到目前爲止,但我想移動到連接數據庫來填充我的數據集。我對使用Firebird非常熟悉,並且能夠將Firebird作爲數據提供者安裝(通過NuGet並安裝適當的DDEX文件)。不幸的是,我很難理解如何查詢數據庫並填充我的數組。

基本上,這是我的代碼如下所示:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 
using FirebirdSql.Data.FirebirdClient; 
using System.Configuration; 
using System.Collections; 

namespace NBAPoolWebService.Controllers 
{ 
    public class UserController : ApiController 
    { 

     User[] users = new User[] 
     { 
      new User { ID = 1, CREATED=new DateTime(2011, 1, 12), ISACTIVE='Y', USERNAME="TEST1"}, 
      new User { ID = 2, CREATED=new DateTime(2012, 2, 22), ISACTIVE='Y', USERNAME="TEST2"} 

     }; 

     public IEnumerable<User> GetAllUsers() 
     { 
      return users; 
     } 

     public IHttpActionResult GetUser(int id) 
     { 
      var user = users.FirstOrDefault((p) => p.ID == id); 
      if (user == null) 
      { 
       return NotFound(); 
      } 
      return Ok(user); 
     } 
    } 
} 

目前,如果我訪問http://localhost/api/user,我讓我的測試用戶的列表,經由JSON(這是我想要的)。

我希望能夠理解的是如何改變我設置的來自我的Firebird數據庫的數組(通過SQL查詢)。我知道如何獲得我的查詢(從用戶中選擇*),我有一個有效的連接(通過visual studio確認),並且我已經看到了一些關於如何使用FBConnection的教程。

我遇到困難實際上是使用查詢中的數據並填充數組中的對象。

任何幫助將不勝感激。如果您可以告訴我需要輸入的代碼片段,或者指向正確的教程,或者如果您認爲我應該使用特定的技術或方法,那就太好了。

我在嘗試完成/理解的是如何創建一個Web服務,該服務響應JSON並連接到Firebird數據庫。

在此先感謝您的幫助!

+0

您首先需要爲Dotnet https://www.ibphoenix.com/download/connectivity/dotnet安裝Firebird連接器,然後您可以使用適當的連接字符串來查詢您的數據庫,就好像它在哪裏一個mysql/access/sqlite等等通過nuget PM>安裝包FirebirdSql.Data.FirebirdClient – Bellash 2015-03-31 14:46:36

+0

感謝Bellash,我在我的電腦上做了以下安裝:[link] http://sourceforge.net/projects/firebird/files/firebird-net-provider/ 4.6.1/FirebirdSql.Data.FirebirdClient-4.6.1.0.msi/download [link] http://sourceforge.net/projects/firebird/files/firebird-net-provider/DDEX%203.0.1/DDEXProvider-3.0。 1.0.msi/download,我還搜索了NuGet,並通過Visual Nuget Manager添加了Entity Framework,FB ADO.net provider和FB Entity Framework Provider。我真正希望得到的是查詢數據庫並將該信息傳遞到我的數組中的語法。 – CSharpNewb 2015-03-31 15:35:54

回答

0

通過觀看複合視頻,我學到了很多關於.Net和Entity Framework的知識。如果你沒有賬戶,註冊試用會讓你看Entity Framework and Data Models。有一個專用於創建數據庫第一實體數據模型的模塊,您可能會發現它有用。

+0

謝謝Sherri,我看到了你丈夫對你遇到的問題的評論,看起來你能夠讓事情繼續下去,所以我不會迴應,實際上我有同樣的問題,但我的項目是本地的在調試完現有的項目之後,我最終在基本上刪除並重新安裝了所有必需的組件後開始了一個新的項目,然後導致我的FB連接窗口消失,這就要求我修復我的machine.config(google它)我意識到這個評論很長時間,並不適用於你,只是希望幫助其他人。 – CSharpNewb 2015-04-09 19:50:11

0

一堆的研究之後,我偶然發現了以下鏈接:

[鏈接] http://johntomaselli.blogspot.ca/2012/04/mvc-4-firebird-ef-41-and-database-first.html

所以我刪除了現有用戶控制器和模型和創建使用ADO.NET實體數據模型的新模式(名爲User)。

從那裏,我用EF從數據庫設計,並使用我在我的web.config中創建的connectionstring。

從那裏它讓我選擇我想要的數據庫表,並構建出一個名爲User.edmx的模型。

之後,我使用實體框架創建了一個使用Web API2控制器和操作的控制器。

這使我可以選擇具有相應名稱的模型類。

在這一點上,我想我需要做一些關於實體框架的研究,但這至少允許我創建一個連接到數據庫的Web服務。

希望這可以幫助其他年輕的新人開始使用ASP.net,MVC,WebAPI,Entity Frameworks和Firebird。

我的下一步將理解User.edmx,如果我應該爲所有表(而不是一個)創建模型。希望我明白當我研究實體框架時。

+0

我的妻子發現自己與原來的問題幾乎一模一樣,但還沒有設法解決,即使在這裏給出了答案。但是她沒有足夠的聲望來發表這個評論,所以我在幫她: – randallmeadows 2015-04-08 19:28:41

+0

「我幾乎已經放棄了在VS 2013中使用實體框架6的firebird,直到我看到這個答案。提到你「使用ADO.NET實體數據模型創建了一個新模型」,這是我陷入困境的地方。我想我已經完成了與你在問題的評論中提到的相同的設置,但是我顯然錯過了一些東西。你介意看一下我的問題http://goo.gl/I2Kttl,看看你是否注意到我可以做的不同事情來解決我的問題?謝謝!「 – randallmeadows 2015-04-08 19:30:12