使用 Entity Framework Power Tools Beta 2 將現有資料庫反向工程為 Code First 類別時,可能發生 0x80070057 的錯誤

使用 Entity Framework Power Tools Beta 2 將現有資料庫反向工程為 Code First Model時,可能發生 0x80070057 的錯誤

情境說明

當您嘗試在 Visual Studio 2012 中使用 Entity Framework Power Tools Beta 2 將現有資料庫利用反向工程功能轉換為 Code First 類別時,可能發生 HRESULT:0x80070057 的錯誤,在 Visual Studio 2012 的 Output 視窗中也可以看到相關的錯誤訊息(如下圖所示)。

image

實作步驟

目前筆者找到的方法包含下列幾種:

1. 加入參考 Entity Framework 組件。

2. 連接資料庫時設定 Persist  Security Info 屬性為 True。

SNAGHTML6fae98

3.刪除 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF.Utility.CS 下的 【<#@ CleanupBehavior Processor="T4VSHost" CleanupAfterProcessingTemplate="true" #>】的宣告。

其中以筆者的環境中只有第三種作法,才順利解決這個錯誤訊息,Sky 有找到在 Microsoft Connect 已經有人反應這個問題,目前只有透過變通的作法來解決問題,也許這是因為 Entity Framework Power Tools 還在 Beta 才有的問題,希望到了正式版之後可以修復。

參考資料

- Entity Framework Power Tools Beta 2

- Entity Framework Power Tools使用提示参数错误

- Entity Framework Power Tool 参数错误的解决办法

- EF Power Tools Beta 2   生成 Entity Framework Code First 提示 参数错误 hresult e_invalidarg 的最新解决方法