2013-10-27 50 views
2

我試圖EF使用代碼優先的方法,但與現有的數據庫。搜索後,我發現要做的重要事情是將我的上下文的初始化程序設置爲nullSetInitializer<>。現在在大多數樣本中,我發現他們使用static修飾符聲明MyDbContext構造函數。檢查this SO answer
那麼聲明static構造函數有什麼意義呢?在EF代碼中的靜態構造函數首先使用

回答

3

靜態構造函數在任何其他構造函數之前以及訪問任何靜態成員之前自動執行。 它們僅在每個AppDomain中調用一次,因此可用於初始化靜態,如調用數據庫類型的靜態SetInitializer方法。

+0

所以它不需要**使用靜態constructer ..它只是更好的方式來做到這一點? –

+0

對,Entity Framework如何調用SetInitializer並不重要,只要確保在上下文之前調用它就可以了,如果需要更改默認初始化程序。如果您不需要更改CreateDatabaseIfNotExists的默認值,則根本不需要調用它。 –