實體框架7數據庫優先配置(MVC 6)

asp.net-core asp.net-core-mvc entity-framework-core

經過長時間的不斷鬥爭,終於想出瞭如何使用EF7數據庫第一種方法使用MVC 6.這就是它的方式:

App.Impl - > project.json:

"frameworks": {
    "net451": { },
    "dnx451": { }
},
"dependencies": {
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final"
},

然後從cmd運行命令:

"frameworks": {
    "net451": { },
    "dnx451": { }
},
"dependencies": {
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final"
},

我面臨的3個問題。在我的Impl項目上。

  1. 我有一個專門用於數據的文件夾。 My Data文件夾應包含所有與數據庫相關的內容,例如DbContext,DbClasses。但是,Scaffold在根目錄下創建這些文件。如何指定我想要創建這些文件的文件夾?

  2. 在我的工作地點,我可以有一個包含50個表的數據庫。但是,如果我只需要訪問2怎麼辦?我不想為我的項目添加所有50個表。如何指定我想要的表格?

  3. 在我的數據庫中,我可以有一個名為“Users”的表,因為它是一個包含用戶的表。但是,scaffold應該創建一個類“User”,因為它是一個單獨的用戶,直到它成為List。如何指定正在創建的表的名稱?

謝謝大家的幫助。

一般承認的答案

嘗試使用

dnx ef dbcontext scaffold 
    "Server=Server\InstanceName;Database=db;Trusted_Connection=True;"
    EntityFramework.MicrosoftSqlServer 
    --dataAnnotations
    --outputDir Data
    --verbose
    --table dbo.Users

以上所有參數都應該在同一行,但我將長行包裝起來更容易閱讀。您可以查看源代碼以查看哪些選項支持RC1中的scaffold命令。

請小心地複制並粘貼來自appsettings.jsonConnectionString ,因為您可以擁有Server=Server\\InstanceName;ConnectionString ,但是dnx ef dbcontext scaffold目前只接受Server=Server\InstanceName;並且您將在Server=Server\\InstanceName;的使用上獲得System.InvalidOperationException錯誤 Server=Server\\InstanceName;直接從appsettings.jsonConnectionString複製。

其他重要參數是-p | --targetProject ,如果在類庫中使用存儲庫,這很重要。如果您在主項目中定義了ef命令,並在主項目的目錄中啟動dnx ef dbcontext scaffold ,但您使用-p來引用類庫項目。

最後一句話。有時需要從數據庫中構建表的子集 。從命令行幫助中沒有完全清楚,但可以多次指定-t-table )參數 。見註釋在EF7維基。因此,如果您只想導入兩個表dbo.Usersdbo.PostsPosts是否具有Users外鍵),那麼您可以使用以下語法

dnx ef dbcontext scaffold 
    "Server=Server\InstanceName;Database=db;Trusted_Connection=True;"
    EntityFramework.MicrosoftSqlServer 
    --dataAnnotations
    --outputDir Data
    --verbose
    --table dbo.Users

更新:應該在ASP.NET Core RC2及更高版本中使用dotnet ef dbcontext scaffold而不是dnx ef dbcontext scaffold




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因