我是实体框架的新手,刚刚通过了Lerman的EF书。不幸的是,它仅涵盖 EF v4 。我正在查看 EF v6 中的 Fluent API ,它似乎更好,更容易使用。
不幸的是, EF v6 中的 Fluent API 似乎正在使用SqlClient
而不是EntityClient
- 至少来自连接字符串 (提供商名称)。这是为什么?这是否意味着我们无法将其与Oracle或任何其他非MS DB一起使用?
答案 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.