這是我表單中的其中一欄,輸入護理師編號後按下儲存,會顯示護理師的名字
以下是我的寫法
public EMPLOYEE FindEmployeeName( string cid ,string empId)
{
return _repo.EMPLOYEE.Where(x => x.CID == cid && x.EMP_ID == empId).FirstOrDefault<EMPLOYEE>();
}
但這樣又有瑕疵,所以我改成這樣
public EMPLOYEE FindEmployeeName( string cid ,string empId)
{
EMPLOYEE error = new EMPLOYEE();
var Name = _repo.EMPLOYEE.FirstOrDefault(x => x.CID == cid && x.EMP_ID == empId);
if (Name != null)
{
return Name;
}
else
{
error.EMP_NAME = "編號錯誤";
return error;
}
}
這樣我若輸入錯誤的編號,他儲存後姓名就會顯示編號錯誤,可是這樣我感覺還是怪怪
的,我應該是要儲存失敗然後旁邊要提示編號錯誤才對,請問這個我該如何修改?
if (Name != null)
{
return Name;
}
else
{
error.EMP_NAME = "編號錯誤";
return error;
}
//可以變這樣
if (Name != null)
{
error= Name;
}
else
{
error.EMP_NAME = "編號錯誤";
}
return error;
補充:第一段 EMPLOYEE error = new EMPLOYEE();,error 改名為 ReEMP,會比較順(命名習慣)
可以改成使用 ??
運算子,如果第一個值是 null
則傳回後面的值。
public EMPLOYEE FindEmployeeName( string cid ,string empId) {
return _repo.EMPLOYEE
.Where(x => x.CID == cid && x.EMP_ID == empId)
.FirstOrDefault() ?? new EMPLOYEE { EMP_NAME = "編號錯誤" };
}