Bu oldukça belirsiz/öznel bir sorudur. Bunun, ajax çağrılarını kullanarak tarayıcıya veri göndermenin/almanın en iyi yolu olup olmadığını bilmek istiyorum. Arka uç web servisinde, varlık çerçevesini kullanmak istiyorum. Aşağıda iki örnek işlev vardır.Varlık Çerçevesi ve Javascript Etkileşimi Nasıl İyileştirilir
"En iyi" ölçütleri yazma kodunun, okunabilir kodun ve sağlam mimarinin hızıdır.
Her türlü geri bildiriminiz, öneri ve yorumunuz için teşekkür ederiz.
alın Fonksiyon
[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;
}
}
kaydet Fonksiyonu
[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;
}
}
Neden ayrı bir AjaxEmployee sınıfı var? Çalışanlarınızın varlığının bir projeksiyonu mu? –
Ayrı sınıf, javascript'e gönderirken JSON'a daha iyi serileştirmektir.Çalışan ve Time_Off kaydı arasında bir ilişki olduğu için, serileştirme aşağıdakilere göre düzgün bir şekilde gerçekleşmez: http://mytechworld.officeacuity.com/?p=577 – Sam