[英]Migrate from ADO.NET to Entity Framework
我使用ADO.NET在ASP.NET MVC 4上设置了我的项目。
但是我认为我的数据访问层还不够完善。 在我的公司中,数据获取以这种方式工作-首先,查询结果的所有列的索引都存储在变量中。 然后,使用这些索引变量获取值。 因为DataReader["Name"]
会比DataReader[0]
慢,所以可以节省时间
但是这种方法使我的开发速度变慢(映射变量等)。 另外,在获取单个记录的同时,它实际上完成了两倍的工作-首先获取索引,然后获取数据,而不仅仅是获取数据。
我正在考虑迁移到EF。
无论我看过有关EF的任何文档,我都以某种方式解释它,而使用EF,我已经写好的Stored Procs将毫无用处。
是的,如果我现在迁移到EF,我将不得不再次为所有CRUD操作编写代码吗?
调用存储过程有不同的方法。 我个人更喜欢使用EDMX
文件。
只有几个步骤:
这是一个将function import
包装到方法中的示例:
private static List<GetEmployees_Result> GetEmployeeList()
{
using (var db = new DBEntities())
{
//do some crazy Linq
ObjectResult<GetEmployees_Result> listOfEmployees = db.GetEmployees("USA");
return listOfEmployees.ToList();
}
}
就是这样,现在将您需要编写的代码与ADO.NET代码的音调进行比较!
您可能出于错误原因这样做。
如果DataReader["name"]
和DataReader[0]
之间的性能原因在您的项目中产生了明显的不同,则添加另一层间接寻址(实体框架)可能会使性能变差。
但是,我宁愿认为这种差异与您的情况并没有真正的关系 ,并且您的公司之所以这样做是出于对微观优化的误导。
我的建议是尝试EF,尝试使用DataTables( DataRow.Field提供对查询结果的类型安全访问),将其与当前方法进行比较,然后选择使开发工作更轻松的任何方法。 在大多数情况下,数据访问时间将在所有“列名查找”时间中占主导地位,因此我不必为此担心太多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.