2015-03-31 67 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