对实体框架的怀疑

时间:2011-09-19 12:20:09

标签: c# asp.net entity-framework

我从未使用过这个框架,事实上我已经使用java工作了大约两年但是在过去的6个月里我改变了工作,我开始使用ASP.NET平台,现在我必须开始新项目,我想使用实体框架,因为我只使用过java,我对这项技术并不熟悉,所以我有几个问题。

  1. 我可以使用逆向工程来创建基于ER数据库的模型吗?
  2. 这个框架,抽象使用数据库引擎?

5 个答案:

答案 0 :(得分:5)

  1. 是的,您可以从数据库或模型中的数据库创建模型
  2. 是的,您可以对许多数据库使用相同的模型(SQL server,oracle,mysql,posgresql和提供EF提供程序的每个数据库)
  3. 我认为EF仅适用于小型数据库。如果您有超过100个表,则应使用NHibernateComparison with EF)或其他工具 Code Fluent EntitiesCodeFluent Entities compare to EF

答案 1 :(得分:4)

1)是的。

http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx

2)也是的。一切都是通过DbContext类完成的。它允许您访问数据库,并根据需要执行SQL。但是对于刚开始,你只需使用LINQ来查询你的DbSets。

答案 2 :(得分:2)

  1. 是的,在某种程度上,如果数据库之间的数据类型不同,则可能需要调整模型

答案 3 :(得分:2)

我同意你的意见,我的形状相同。您可以轻松地从JAVA遍历到C#。

  1. 你可以坚持下去并做到这一点。您甚至可以根据需要自定义您的模型。
  2. EF / LINQ或任何其他数据上下文层为您提供了无障碍环境,您可以在其中拥有一个抽象层,您可以通过该层访问数据库模型(tables / stored proc / views / etc.)。
  3. 希望这有帮助!

答案 4 :(得分:0)

  1. 是 - >你实际上可以双管齐下。
  2. 是的,它使用自己的DBcontext抽象数据库。
  3. 如果你习惯于从java世界中休眠,你可以考虑使用nhibernate。实体框架有其缺点,nhibernate也有一些弱点。所以你必须在项目中定义你真正需要的东西。 IMHO EF为您提供了与.net框架其余部分的最佳集成。