0

我正在使用實體框架4和自我跟蹤實體創建項目。我希望能夠從sql server 2008數據庫或從sql server compact數據庫中獲取數據(開關位於配置文件中)。我正在使用存儲庫模式,並且我將擁有坐在獨立程序集中的自我跟蹤實體。EF4,自我跟蹤,存儲庫模式,SQL Server 2008和SQL Server Compact

我需要兩個edmx文件嗎?如果是這樣,我如何在單獨的程序集中只生成一組STE?我也需要生成兩個上下文類嗎?我不確定這一切的管道。誰能幫忙?

達倫

我忘了補充一點,兩個數據庫將是相同的,而且緊湊的版本是供脫機使用。

回答

1

只是爲了跟上這一點。最後,我不得不維護兩個獨立的edmx文件,一個用於sql服務器,另一個用於compact。主要原因是compact 3.5不支持自動識別(正如Zeeshan上面提到的那樣)。這又導致了兩個上下文類。在sql server compact的上下文類中,我不得不放置代碼來檢查插入,查詢數據庫以獲取最新的id並在保存之前手動增加它。

謝天謝地,隨着compact 4.0的發佈,它不再適用,因爲它支持auto id,而且你確實可以只使用一個edmx文件。

Darren

0

只要架構完全相同,您確實需要edmx文件。只需更改連接字符串,一切都可以無縫工作。雖然我不確定你是怎麼說模式是相同的,當緊湊版不支持身份概念和全面的SQL服務器。因此,如果您正在使用特定於SQL Server的功能,而這些功能在Compact中不可用,那麼您會遇到運行時錯誤。