为什么MS EF v6 Fluent API不使用EntityClient?

时间:2014-03-13 14:05:15

标签: c# entity-framework entity-framework-6 fluent-entity-framework

我是实体框架的新手,刚刚通过了Lerman的EF书。不幸的是,它仅涵盖 EF v4 。我正在查看 EF v6 中的 Fluent API ,它似乎更好,更容易使用。

不幸的是, EF v6 中的 Fluent API 似乎正在使用SqlClient而不是EntityClient - 至少来自连接字符串 提供商名称。这是为什么?这是否意味着我们无法将其与Oracle或任何其他非MS DB一起使用?

2 个答案:

答案 0 :(得分:1)

EF4中的EntityClient(实际上是EF5和EF6)是一种装箱数据库相关概念和EF相关概念的方法。与数据库相关的概念是EF与数据库交互的方式,而与EF相关的概念是模型的外观。在EF4中,用于序列化模型的模型主要方法是edmx文件,其中包含CSDL,MSL和SSDL工件。如果查看实体连接字符串,它包含作为EF相关概念的工件(即CSDL,MSL和SSDL)的路径以及作为数据库部分的提供者连接字符串。事实上,对于Model和Database First,甚至EF6仍然以相同的方式工作。对于Code First方法,您的代码(以及OnModelCreating和自定义约定中的配置)是您的模型。因此,无需序列化和存储您的模型,因为它是您应用的一部分。因此,可以删除与EF相关的概念,并且在这样做之后,仅剩下已经在ADO.NET提供者模型中捕获的数据库相关概念。

答案 1 :(得分:0)

我不知道你看到了什么,但是你可以使用任何提供者,只要提供者did the extra work使他们的ADO.NET提供者与Entity Framework兼容。

Oracle's ADO.NET provider is compatible with Entity Framework.