1、关于存储过程的参数的传递。
在LINQ之前,我们需要一一创建存储过程的参数,并传入存储过程。
这里仅仅列出了一个参数的代码,在参数很多的情况下,这个代码将会很多很长。
然而有了LINQ之后,十几个参数的存储过程的调用也非常简单:
2、关于存储过程返回结果的读取。
在LINQ之前,我们需要一一读取每个列的值,并给Entity Class赋值。
上面代码还仅仅只是列出了生成Entity Class的代码。另外,如果一旦需求有变更,需要增加字段,则又需要一一修改DataReader的序号。
然而有了LINQ之后,整个代码将会非常简单,即使增加了字段,也不会作任何改动:
在LINQ之前,我们需要一一创建存储过程的参数,并传入存储过程。
1
IDbDataParameter para;
2
3 para =
this.CreateParameter();
4 para.Value =
GenericConverter.StringToDbNVarchar(
this.Parameters.EmployeeNo);
5 para.ParameterName =
"@EmployeeNo";
6 para.Direction =
ParameterDirection.Input;
7 para.DbType =
DbType.String;
8 parameters.Add(para);
然而有了LINQ之后,十几个参数的存储过程的调用也非常简单:
1
this._Database.InsertEmployee(employeeInfo.EmployeeId,
2 employeeInfo.EmployeeNo,
3 employeeInfo.EmployeeName,
4 employeeInfo.DepartmentId,
5 employeeInfo.PositionId,
6 employeeInfo.EmployeeManager,
7 employeeInfo.EmployeeGender,
8 employeeInfo.EmployeeEntryDate,
9 employeeInfo.EmoplyeeBirthday,
10 employeeInfo.EmployeePhone,
11 employeeInfo.EmployeeEmail,
12 employeeInfo.EmployeeStatus);
在LINQ之前,我们需要一一读取每个列的值,并给Entity Class赋值。
1
EmployeeInfo entity =
new
EmployeeInfo();
2
3 entity.EmployeeId =
GenericConverter.DbIntToInt32(dataReader[0]);
4 entity.EmployeeNo =
GenericConverter.DbNVarcharToString(dataReader[1]);
5 entity.EmployeeName =
GenericConverter.DbNVarcharToString(dataReader[2]);
6 entity.DepartmentId =
GenericConverter.DbIntToInt32(dataReader[3]);
7 entity.PositionId =
GenericConverter.DbIntToInt32(dataReader[4]);
8 entity.EmployeeManager =
GenericConverter.DbIntToInt32(dataReader[5]);
9 entity.EmployeeGender =
GenericConverter.DbBitToBoolean(dataReader[6]);
10 entity.EmployeeEntryDate =
GenericConverter.DbDateTimeToDateTime(dataReader[7]);
11 entity.EmoplyeeBirthday =
GenericConverter.DbDateTimeToDateTime(dataReader[8]);
12 entity.EmployeePhone =
GenericConverter.DbNVarcharToString(dataReader[9]);
13 entity.EmployeeEmail =
GenericConverter.DbNVarcharToString(dataReader[10]);
14 entity.EmployeeStatus =
GenericConverter.DbIntToEnum(dataReader[11]);
15
16
this.QueryResults.Add(entity);
然而有了LINQ之后,整个代码将会非常简单,即使增加了字段,也不会作任何改动:
1
IList value =
null;
2
3
ISingleResult<
EmployeeInfo> results =
this._Database.GetEmployeesByEmployeeName(employeeName);
4
5
foreach (
EmployeeInfo item
in results)
6 {
7
if (value ==
null) value =
new
ArrayList();
8
9 value.Add(item);
10 }
11
12
return value;
本文转自 Eallies 51CTO博客,原文链接:http://blog.51cto.com/eallies/79029,如需转载请自行联系原作者