关于实体框架的疑问

关于实体框架的疑问

问题描述:

我从来没有使用过这个框架,实际上我一直在使用java约两年,但在过去6个月中我改变了工作,并开始使用ASP.NET平台,现在我不得不开始一个新的项目,我想使用实体框架,因为我只使用过java,我对这项技术不熟悉,所以我有几个问题。关于实体框架的疑问

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

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. 是的,你可以创建一个数据库,从模型的模型,或数据库
  2. 是的,你可以使用对许多数据库(SQL Server,Oracle,MySQL等,posgresql和每一个同型号数据库,提供一个EF供应商)

我认为EF只适用于小数据库。当你有超过100个多幅表,你应该使用NHibernateComparison with EF)或其他工具,如 Code Fluent EntitiesCodeFluent Entities compare to EF

  1. 是的,在一定程度上,可能需要调整模型,如果数据类型之间的变化数据库

  1. 是的 - >你可以实际去双向。
  2. 是的,它用它自己的DBcontext抽象数据库。

如果您习惯从java世界休眠,您可能会考虑使用nhibernate。 Entity Framework也有其弱点,nhibernate有一些弱点。所以你必须定义你真正需要的项目。恕我直言EF给你最好的整合到.net框架的其余部分。

我同意你的意见,我的形状相同。你可以很容易地从JAVA遍历到C#。

  1. 您可以定义并继续操作。您甚至可以根据需要自定义您的模型。
  2. EF/LINQ或任何其他数据上下文层为您提供了一个无障碍环境,您可以通过该环境访问数据库模型(表/存储过程/视图/等)。

希望这会有所帮助!