இந்த கட்டுரையில் எவ்வாறு SQL SERVER டேட்டா பேசில் இருந்து ASP.NET WEB API மூலம் டேட்டாவை எவ்வாறு கேட்டு பெறுவது என்று பார்ப்போம்.
WEB API employee service என்று நாம் உருவாக்கும் பிராஜெக்ட் ஆனது sql server டேட்டா பேஸ் Employees table –ல் இருந்து டேட்டாவை ரிட்ரைவ் செய்யும்.
அந்த டேபிளுக்கான டேட்டா கீழே உள்ள படத்தில் உள்ளது.
இதற்கு ADO.NET அல்லது Entity framework எது வேண்டுமானாலும் பயன்படுத்தலாம் இந்த கட்டுரையில் Entity framework தொழில் நுட்பம் பயன்படுத்தப்பட்டுள்ளது.
Sql management ஸ்டுடியோ பயன்படுத்தி கீழே உள்ள ஸ்கிரிப்டை இயக்கவும்.
இது
EmployeesDB என்றொரு டேட்டா பேசை உருவாக்கும்.
மேலும் இது employees என்ற டேபிளை உருவாக்கி மாதிரி டேட்டாக்களை இன்செர்ட் செய்யும்.
Create Database EmployeeDB
Go
Use EmployeeDB
Go
Create table Employees
(
ID int primary key identity,
FirstName nvarchar(50),
LastName nvarchar(50),
Gender nvarchar(50),
Salary int
)
Go
Insert into Employees values ('Mark', 'Hastings', 'Male', 60000)
Insert into Employees values ('Steve', 'Pound', 'Male', 45000)
Insert into Employees values ('Ben', 'Hoskins', 'Male', 70000)
Insert into Employees values ('Philip', 'Hastings', 'Male', 45000)
Insert into Employees values ('Mary', 'Lambeth', 'Female', 30000)
Insert into Employees values ('Valarie', 'Vikings', 'Female', 35000)
Insert into Employees values ('John', 'Stanmore', 'Male', 80000)
Go
இப்பொழுது விசுவல் ஸ்டுடியோவில் கீழ் காணும் ASP.NET WEB API பிராஜெக்டை உருவாக்கவும்.
புதிய பிரஜெக்ட் விண்டோவில் இடது புறம் VISUAL C# அடியில் INSTALLED TEMPLATES என்பதை செலெக்ட் செய்யவும்.
மத்தியில் ASP.NET WEB APPLICATION என்பதை செலெக்ட் செய்யவும்.
பிராஜெக்டின் பெயராக EmployeeService என்று கொடுக்கவும்.
பிறகு ok பட்டனை கிளிக் செய்யவும்.
அடுத்து வரும் விண்டோவில் WEB API என்பதை தேர்வு செய்து OK பட்டனை கிளிக் செய்யவும்.
இதை சொலூசனில் எண்டைட்டி டேட்டா மாடலை தனி பிராஜெக்டாக வைத்துக் கொள்வோம்.
EmployeeService என்ற சொலூசனில் வலது கிளிக் செய்து Add new project என்பதை தேர்வு செய்யவும்.
மத்தியில் class library என்பதை தேர்வு செய்து அதன் பெயராக EmployeeDataAccess என்று கொடுத்து ok செய்யவும்.
EmployeeDataAccess என்பதை வலது கிளிக் செய்து Add new item என்பதை தேர்வு செய்யவும்.
இப்பொழுது வரும் விண்டோவில் இடது புறம் data என்பதை தேர்வு செய்யவும்.
மத்தியில் Entity Data model என்பதை தேர்வு செய்யவும்.பெயராக EmployeeDataModel என்று கொடுத்து Add பட்டனை கிளிக் செய்யவும்.
EmployeeDataModel விசார்டில் EF designer from database என்பதை தேர்வு செய்யவும்.
Next பட்டனை கிளிக் செய்யவும்.
அடுத்து வரும் திரையில் New connection என்ற பட்டனை கிளிக் செய்யவும். அடுத்து வரும் திரையில் கனக்சன் பிராப்பர்ட்டிகளாக கீழ் உள்ளது செட் செய்யவும்.
Server
Name = (local)
Authentication
= Windows Authentication
Select or
enter a database name = EmployeeDB
Click OK and
then click Next
அடுத்து வரும் திரையில் Entity framework 6.x என்பதை தேர்வு செய்யவும்.
அடுத்து வரும் திரையில் Employees என்ற டேபிளை செலெக்ட் செய்து finish பட்டனை கிளிக் செய்யவும்.
இப்பொழுது Employee service பிராஜெக்டில் references என்பதை வலது கிளிக் செய்து “Add reference” என்பதை தேர்வு செய்யவும்.
Reference manager திரையில் “EmployeeDataAccess” என்பதை தேர்வு செய்யவும்.
இப்பொழுது EmployeesService பிராஜெக்டில் உள்ள controllers என்ற ஃபோல்டரில் வலது கிளிக் செய்து Add controller என்பத செலெக்ட் செய்யவும்.
கண்ட் ரோலர் பெயராக EmployeesController என்று கொடுத்து ஒகே செய்யவும்.
பிறகு EmployeesController.cs என்ற ஃபைலில் கீழ் உள்ள நிரலை காப்பி பேஸ்ட் செய்யவும்.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using EmployeeDataAccess;
namespace EmployeeService.Controllers
{
public class EmployeesController : ApiController
{
public IEnumerable<Employee> Get()
{
using(EmployeeDBEntities entities = new EmployeeDBEntities())
{
return entities.Employees.ToList();
}
}
public Employee Get(int id)
{
using (EmployeeDBEntities entities = new EmployeeDBEntities())
{
return entities.Employees.FirstOrDefault(e => e.ID == id);
}
}
}
}
இப்பொழுது நிரலை பில்ட் செய்து இயக்கி /api/employees என்று கொடுக்கவும்.
இப்பொழுது கீழ் உள்ள பிழை சுட்டப்படும்.
No connection string named 'EmployeeDBEntities' could be found in the application config file.
இதற்கு காரணம் EmployeeDBEntities என்ற கனக்சன் ஸ்ட்ரிங் ஆனது Employeeservice பிராஜெக்டில் உள்ள web.config ஃபைலில் உள்ளதா என பார்க்கும். ஆனால் அதற்கான கனக்சன் ஸ்ட்ரிங்க் ஆனது EmployeesDataAccess கிளாஸ் லைப்ரரி பிராஜெக்டில் உள்ள app.config என்ற ஃபைலில் இருக்கும் அதை காப்பி செய்து Employeeservice பிராஜெக்டில் உள்ள web.config என்ற ஃபைலில் பேஸ்ட் செய்யவும்.
இப்பொழுது api/employees என்ற முகவரிக்கு நேவிகேட் செய்தால் முழு டேட்டாவும் கிடைக்கும். இல்லையெனில் api/employees/1 என ஐடியை கொடுத்தால் அந்த குறிப்பிட்ட ஐடிக்கான டேட்டா மட்டும் கிடைக்கும்.
நன்றி.
முத்து கார்த்திகேயன் ,மதுரை
No comments:
Post a Comment