下面我将分享一下C#基于DBContext(EF)实现通用增删改查的REST方法实例的攻略。
步骤一:创建数据库和数据表
首先,我们需要在SQL Server 中创建一个新的数据库和一些数据表。在本例中,我们将创建一个名为"EmployeeDB"的数据库,并在其中创建一个名为"Employee"的表,该表将包含有关员工的详细信息。
步骤二:创建C#项目
在Visual Studio中创建一个新的C#项目。我们可以选择ASP.NET Web应用程序模板,类型为Web API。
步骤三:安装Entity Framework
我们需要通过 NuGet 安装Entity Framework (EF)。打开NuGet Package Manager控制台,运行以下命令:
Install-Package EntityFramework
步骤四:创建模型类
接下来,我们需要为Employee表创建一个实体模型类。以下是一个示例:
public class Employee
{
public int EmployeeID { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
}
步骤五:创建DBContext类
接下来,我们需要创建一个继承自DbContext类的EmployeeDBContext类。以下是一个示例:
public class EmployeeDBContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
}
步骤六:创建控制器
接下来,我们需要创建一个控制器来处理与Employee实体相关的HTTP请求。以下是一个示例:
public class EmployeesController : ApiController
{
private EmployeeDBContext db = new EmployeeDBContext();
// GET api/employees
public IQueryable<Employee> GetEmployees()
{
return db.Employees;
}
// GET api/employees/5
public IHttpActionResult GetEmployee(int id)
{
Employee employee = db.Employees.Find(id);
if (employee == null)
{
return NotFound();
}
return Ok(employee);
}
// PUT api/employees/5
public IHttpActionResult PutEmployee(int id, Employee employee)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != employee.EmployeeID)
{
return BadRequest();
}
db.Entry(employee).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!EmployeeExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
// POST api/employees
public IHttpActionResult PostEmployee(Employee employee)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Employees.Add(employee);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = employee.EmployeeID }, employee);
}
// DELETE api/employees/5
public IHttpActionResult DeleteEmployee(int id)
{
Employee employee = db.Employees.Find(id);
if (employee == null)
{
return NotFound();
}
db.Employees.Remove(employee);
db.SaveChanges();
return Ok(employee);
}
private bool EmployeeExists(int id)
{
return db.Employees.Count(e => e.EmployeeID == id) > 0;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
}
示例一:获取所有的员工信息
使用 HTTP GET 请求来检索所有员工的信息。
发送如下请求:
GET /api/employees HTTP/1.1
Host: localhost:8080
以下是响应的示例:
[
{
"EmployeeID": 1,
"Name": "John",
"Gender": "Male",
"City": "New York"
},
{
"EmployeeID": 2,
"Name": "Jane",
"Gender": "Female",
"City": "Los Angeles"
},
{
"EmployeeID": 3,
"Name": "Bob",
"Gender": "Male",
"City": "Chicago"
}
]
示例二:添加一个新的员工
使用 HTTP POST 请求向数据库中添加一个新的员工的信息。
发送如下请求:
POST /api/employees HTTP/1.1
Host: localhost:8080
Content-Type: application/json
{
"Name": "Alice",
"Gender": "Female",
"City": "Boston"
}
以下是响应的示例:
{
"EmployeeID": 4,
"Name": "Alice",
"Gender": "Female",
"City": "Boston"
}
到这里,C#基于DBContext(EF)实现通用增删改查的REST方法实例的攻略就介绍完了,希望对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#基于DBContext(EF)实现通用增删改查的REST方法实例 - Python技术站