从WebAPI 2中的数据库表中获取ID(最佳实践)

时间:2015-07-01 12:39:56

标签: c# sql-server linq asp.net-web-api linq-to-sql

我有一个关于从数据库MS SQL Server中的表中获取ID的最佳实践的问题。

我在C#和数据库SQL Server 2014中使用WebAPI作为REST服务。

我以JSON格式获取数据如下:

{
 "Id":1,
 "name":"Deutschland",
 "code":"DE",
 "state":[]
}

我的控制器编程如下:

[HttpGet]
public HttpResponseMessage GetGroup(int id)
{
   Group group = (
             from g in db.QR_Groups
             where g.Id == id
             select new Group
             {
               Id = g.Id,
               name = g.name,
               code = g.code
             }).SingleOrDefault();

   if (group == null)
   {
      throw new HttpResponseException(HttpStatusCode.NotFound);
   }

   return Request.CreateResponse(HttpStatusCode.OK, group);
}

我的数据库表名为" QR_Groups"。这是我编程的好习惯吗?

2 个答案:

答案 0 :(得分:2)

这可能是Code Review上提出的最佳问题,但有一点我建议您查看Entity Framework,而不是单独编写应用程序和数据层。

使用Entity Framework,可以缩小此方法的大小,并使其在表单中更具可读性:

var group = context.QR_Groups.Find(id).SingleOrDefault();

希望这至少能给出一个想法吗?

答案 1 :(得分:1)

您的查询应该获取组的所有记录,然后在过滤后应用。但这里应用过滤器和获取对象

var group = context.QR_Groups.where(x=>x.Id==id).FirstOrDefault();