Lea*_*sed 5 .net c# linq asp.net-mvc
这是我的课:
public class Employee
{
public int EmployeeId { get; set; }
public int Skillssetpoints { get; set; }
public string Name { get; set; }
public string EmployeeCode { get; set; }
public Nullable<System.DateTime> Date { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
码:
场景1:
var data=context.Employee.ToList(); //Get all employee records.
//Filter records by employee code(Emp01) and fetch single employee code.for eg:Emp01
var empCode = data.FirstOrDefault(t =>(t.EmployeeCode.Trim() == Model.EmployeeCode.Trim())).EmployeeCode;
Run Code Online (Sandbox Code Playgroud)
在这里,如果找不到与匹配的Emp01对象,则错误对象引用不会设置为对象实例,而是通过以下代码修复了该问题:
var Single = data.FirstOrDefault(t =>(t.EmployeeCode.Trim() == Model.EmployeeCode.Trim()));
if(single!=null)
{
var data=Single.EmployeeCode;
//Rest other code.
}
Run Code Online (Sandbox Code Playgroud)
方案2:
var data=context.Employee.ToList(); //Get all employee records.
//Fetch List of employee with Employee code:Emp01
var list= data.FirstOrDefault(t =>(t.EmployeeCode.Trim() == Model.EmployeeCode.Trim()));
Run Code Online (Sandbox Code Playgroud)
在这里,我的数据对象如有EmployeeCode的null话,我得到这个错误:
错误:对象引用未设置为对象实例
固定与此:
var list= data.FirstOrDefault(t => (t.EmployeeCode != null) && (t.EmployeeCode.Trim() == Model.EmployeeCode.Trim()));
Run Code Online (Sandbox Code Playgroud)
对于第二种情况,当我获取员工的所有记录并按员工代码进行过滤时,我首先没有添加此空值条件,因为我拥有的所有员工记录都没有任何空员工代码,并且一切正常,但是在任何时候员工代码变为null并收到此error.so以后我想避免此错误。
所以我只想知道有没有更好的方法来处理这两种情况?
| 归档时间: |
|
| 查看次数: |
2395 次 |
| 最近记录: |