0

我是實體框架的新手,剛剛通過Lerman的EF書籍。不幸的是,它只涵蓋了EF v4。我正在尋找Fluent API in EF v6,它看起來好多了,也更容易使用。爲什麼MS EF v6 Fluent API不使用EntityClient?

不幸的是,流利的APIEF V6好像是用SqlClient代替EntityClient - 在從連接字符串提供商名稱最少。這是爲什麼?這是否意味着我們無法將它與Oracle或任何其他非MS數據庫一起使用?

+0

你能提供你看到它使用'SqlClient'嗎? –

+0

請參見部分**配置文件**下的[先編碼到現有數據庫](http://msdn.microsoft.com/zh-cn/data/jj200620.aspx)。不幸的是,其他教程不顯示**連接字符串**。 –

+1

當您按照本教程進行操作時,只需選擇「Oracle」而不是「Microsoft Sql Server」,其他一切都會相同。 –

回答

1

EntityClient在EF4(事實上在EF5和EF6)是拳擊數據庫相關的概念和EF相關概念的方式。與數據庫相關的概念是EF如何與數據庫交談,而與EF相關的概念則是模型的外觀。在EF4中,序列化模型的主要方法是包含CSDL,MSL和SSDL工件的edmx文件。如果您查看實體連接字符串,則它包含指向與EF相關的概念的工件(即CSDL,MSL和SSDL)以及作爲數據庫部分的提供程序連接字符串的路徑。實際上,對於Model和Database First,即使EF6仍然以相同的方式工作。對於Code First,您的代碼(以及OnModelCreating和自定義約定中的配置)是您的模型。因此,不需要序列化和存儲您的模型,因爲它是您的應用程序的一部分。因此,EF相關的概念可以被刪除,並且在這樣做之後,只剩下已經在ADO.NET提供者模型中捕獲的與數據庫相關的概念。

+0

謝謝你的總結。 –

0

我不知道你看到了什麼你看到的東西,但只要提供者did the extra work能讓他們的ADO.NET提供者與實體框架兼容,就可以使用任何提供者。

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

+0

這似乎沒有使用** EF v6 Fluent API **。據我所知,以前的版本有所不同。 –

+0

Fluent API只是描述類的一種不同方式,對於連接字符串只是使用[標準ADO.NET連接字符串](http://msdn.microsoft.com/zh-cn/library/ee789835(v = vs.110).aspx) –