이것은 매우 모호하고 주관적인 질문입니다. 나는이/ajax 호출을 사용하여 브라우저에서 데이터를 보내거나 검색하는 가장 좋은 방법인지 알고 싶습니다. 백엔드 webservice에서 엔티티 프레임 워크를 사용하고 싶습니다. 다음은 두 가지 예제 함수입니다.엔티티 프레임 워크와 자바 스크립트 상호 작용을 향상시키는 방법
"최상의"기준은 코드 작성, 읽기 가능한 코드 및 강력한 아키텍처의 속도입니다.
의견 및 제안 및 의견을 보내 주셔서 감사합니다.
가져 오기 기능
[WebMethod]
public AjaxEmployee EmployeeGetById(int employeeID, bool getTimeOff)
{
using (Time_TrackerEntities ctx = new Time_TrackerEntities())
{
var results = from item in ctx.Employees
where item.ID == employeeID
orderby item.Last_Name
select new AjaxEmployee
{
ID = item.ID,
Employee_ID = item.Employee_ID,
First_Name = item.First_Name,
Middle_Name = item.Middle_Name,
Last_Name = item.Last_Name,
Supervisor_ID = item.Supervisor_ID,
Active = item.Active,
Is_Supervisor = item.Is_Supervisor
};
var emp = results.FirstOrDefault();
if (getTimeOff)
{
var results2 = from item2 in ctx.Time_Off
where item2.Employee_ID == emp.Employee_ID
select new AjaxTime_Off
{
ID = item2.ID,
Employee_ID = item2.Employee_ID,
Date_Off = item2.Date_Off,
Hours = item2.Hours
};
emp.Time_Off = results2.ToList<AjaxTime_Off>();
}
return emp;
}
}
저장 기능
[WebMethod]
public bool EmployeeSave(AjaxEmployee emp)
{
using (Time_TrackerEntities ctx = new Time_TrackerEntities())
{
var results = from item in ctx.Employees
where item.ID == emp.ID
select item;
var myEmp = results.FirstOrDefault();
if (myEmp == null)
{
myEmp = new Employee();
ctx.Employees.AddObject(myEmp);
}
myEmp.Employee_ID = emp.Employee_ID;
myEmp.First_Name = emp.First_Name;
myEmp.Middle_Name = emp.Middle_Name;
myEmp.Last_Name = emp.Last_Name;
myEmp.Supervisor_ID = emp.Supervisor_ID;
myEmp.Active = emp.Active;
myEmp.Is_Supervisor = emp.Is_Supervisor;
return ctx.SaveChanges() > 0;
}
}
왜 'AjaxEmployee' 클래스가 별도입니까? 그것은 당신의'Employee' 엔터티의 투사입니까? –
별도의 클래스는 자바 스크립트로 보낼 때 JSON에 더 잘 serialize하는 것입니다.Employee와 Time_Off 레코드 사이에는 관계가 있기 때문에 http://mytechworld.officeacuity.com/?p=577 – Sam