L2S(LINQ to SQL)或EF(实体框架)

时间:2009-11-13 13:29:02

标签: linq-to-sql entity-framework comparison

我将重建现有的中等规模网络应用程序,用于供应链管理网络解决方案。核心将围绕一些Item \ Site组合记录,Organization \ User管理,显示组织特定数据(具有2级网格的仪表板)和Drilldown,其具有一些项目事务的复杂计算和一个强大的网格以显示多个级别总计,小计等...

  

过去,我是用它开发的   ASP.Net 2.0和ADO.Net,后端   是SQL-Server。我想要迁移   这个网络解决方案完全成功   基于ASP.Net v3.5的MVC架构   并整合其他作品   成员API,验证框架,   等...它将是一个完整的   重新设计。表现和   可扩展性(即处理数百万   记录,执行快速计算,   快速响应时间等。)是   两个主要优先事项此外   简单和长期维护   任何级别的定期升级都是   也值得考虑。

我想知道以下哪两个会产生符合我上述要求的强大DAL:

  • L2S(LINQ to SQL)或EF(实体 框架)

我一直在搜索,基于此我想验证我的理解:

  
      
  1. L2S与Win98一样 - 强大,稳定,简单且具有表现力 -
  2.   
  3. EF就像WinXP - 比win98更好,但在某种程度上也很稳定   有点多层,所以可能有一个   性能和简单性差异   与L2S相比
  4.   

我认为我们的开发中不会涉及'多个数据库',SQL-Server将保留。此外,我认为我们不需要实际将多个表映射到实体等等...通常,我们将为我们的DB表与实体(即用户,组织等)进行一对一的映射。 。)和一些复杂的情况 - 比如仪表板从多个表中提取记录(很可能我们需要使用存储过程和/或数据库视图)。 “向下钻取”页面从单个表中获取数据,但是有很多计算,所以我们再次计划通过一个存储过程来为我们提供一个格式化的表(但是这个表可能看起来不像DB中已有的表)

所以,这是一些棘手的映射,但除此之外我们需要保持简单,考虑性能和可伸缩性。哦!最后但并非最不重要 - 我们的截止日期很紧,所以它是一种“快速发展”的发展方式。

简单,快速,可扩展且简单表演 - 这就是我们需要的东西!

提前致谢 - 请指导我。

PS:参考链接: ORM-LINQ-Entity-Framework-Eric-Nelson

讨论 - LINQ to SQL vs. ADO.NET Entity Framework

简短 - ADO.NET Entity Framework When To Use It Vs Linq To SQL

详细信息 - Choosing between ADO.NET Entity Framework and LINQ to SQL

列表 - Choosing between LINQ to SQL and Entity Framework

4 个答案:

答案 0 :(得分:3)

我喜欢将L2Sql作为Win98的比较,但我会将EF与Vista进行比较......它有很大的潜力,但是在它们出现下一个版本之前它们还没有完成它使得它像一个千人的死亡一样

我正在寻找EF 4 ...我希望Windows 7能够与你的比喻保持一致。

答案 1 :(得分:2)

我认为Linq对sql不会出错。它有它的怪癖,但它的工作原理。尽管使用多个数据上下文存在问题,但我们决定采用L2S。

对于快速DAL生成检出plinqo它需要Codesmith生成代码,但它可以做很多事情并解决linq到sql的一些问题。还有Oleg Sych T4 template s是免费的,内置于​​VS2008中。

答案 2 :(得分:1)

如果您不能等到实体v2出来,即.net 4.0,我会说使用linq 2 sql。

如果需要,您可以稍后切换到实体。

我确实与实体v1玩了一点,我认为它仍然是一个需要长大一点的宝宝。

linq 2 sql的另一个原因是你只使用sql server而且它是一个快速通道项目。

答案 3 :(得分:1)

在我个人看来,在使用了你提到的所有内容之后,我会在Linq2sql或Entity上使用NHibernate。如果你是在一个简单的CRUD站点之后,那么决定并不重要,但是在ADO.Net中很难实现将业务层与数据层分开的能力,因为它更简单(在我的与Nhibernate的意见)。

正如我所说,这方面的意见差异很大。