对实体框架的质疑

本文关键字:框架 实体 | 更新日期: 2023-09-27 18:09:05

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

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

对实体框架的质疑

  1. 是的,您可以从数据库创建模型,或者从模型创建数据库
  2. 是的,你可以使用相同的模型对许多数据库(SQL server, oracle, mysql, posgresql和每个数据库提供EF提供者)

我认为EF只适用于小数据库。当你有超过100个表时,你应该使用NHibernate(与EF比较)或其他工具,比如代码流畅实体(CodeFluent实体与EF的比较)

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。

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

我同意你的看法,伙计,我当时也是这样。您可以轻松地从JAVA切换到c#。

  1. 你可以这样做。你甚至可以根据你的需要定制你的模型。
  2. EF/LINQ或任何其他数据上下文层为您提供了一个无麻烦的环境,您可以通过抽象层访问数据库模型(表/存储过程/视图等)。

希望这对你有帮助!

  1. 是,它用自己的DBcontext抽象数据库。

如果你习惯于从java世界休眠,你可以考虑使用nhibernate。实体框架也有它的弱点,hibernate也有它的弱点。所以你必须明确你在项目中真正需要什么。我认为EF为您提供了与。net框架其余部分的最佳集成。