C# 对实体框架的质疑

C# 对实体框架的质疑,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我从来没有使用过这个框架,事实上我已经使用java大约两年了,但在过去的6个月里我改变了工作,我开始使用ASP.NET平台,现在我必须开始一个新项目,我想使用实体框架,因为我只使用过java,我不熟悉这项技术,所以我有几个问题 我可以使用逆向工程在ER数据库中创建模型吗 这个框架,抽象了数据库引擎的使用 可以,您可以从数据库创建模型,也可以从模型创建数据库 是的,您可以对许多数据库使用相同的模型(SQL server、oracle、mysql、posgresql和提供EF提供程序的每个数据库)

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

  • 我可以使用逆向工程在ER数据库中创建模型吗
  • 这个框架,抽象了数据库引擎的使用
  • 可以,您可以从数据库创建模型,也可以从模型创建数据库
  • 是的,您可以对许多数据库使用相同的模型(SQL server、oracle、mysql、posgresql和提供EF提供程序的每个数据库)
  • 我认为EF只适用于小数据库。当您有超过100个表时,您应该使用()或其他类似的工具 ()

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

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

  • 是->实际上你可以走两条路
  • 是的,它使用自己的DBcontext抽象数据库

  • 如果你习惯于从java世界中休眠,你可以考虑使用NHibernate。实体框架有其弱点,nhibernate也有一些弱点。因此,您必须定义项目中真正需要的内容。IMHO EF为您提供了与.net框架其余部分的最佳集成。

    我同意您的观点,伙计,我当时也处于相同的状态。您可以轻松地从JAVA遍历到C#

  • 你可以这样做。您甚至可以根据需要自定义您的模型
  • EF/LINQ或任何其他数据上下文层为您提供了一个无麻烦的环境,在这里您有一个抽象层,可以通过它访问数据库模型(表/存储过程/视图等)
  • 希望这有帮助