![](/img/trans.png)
[英]Run Scaffold DBContext without overwriting custom code in Entity Framework core
[英]Entity Framework 7 DbContext scaffold
我的項目生成上下文和模型時遇到了同樣的問題。 這是我做過的一些事情。
更新對於下面的1.0 RC1
Project.json
"dependencies": {
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final"
},
"commands": {
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
}
DNX命令
dnx ef dbcontext scaffold "connectionString" EntityFramework.MicrosoftSqlServer
原帖在下面
確保將這些文件添加到project.json文件中:
"dependencies": {
"EntityFramework.SqlServer": "7.0.0-beta7",
"EntityFramework.Commands": "7.0.0-beta7",
"EntityFramework.SqlServer.Design": "7.0.0-beta7"
},
"commands": {
"ef": "EntityFramework.Commands"
}
使用dnvm update-self和dnvm升級升級dnvm和dnx運行時。 我在cmd中運行它。
在項目位置打開cmd.exe(如果您在Windows中,導航到該文件夾並在文件夾中右鍵單擊並單擊“在此打開命令窗口”)。 就我而言,我的數據訪問層有一個單獨的項目,例如。
C:\Projects\Stackoverflow Example\src\StackoverflowExample.DAL\
我然后simplay跑了:
dnx ef dbcontext scaffold“Data Source = .; Initial Catalog = database; Integrated Security = True”EntityFramework.SqlServer
確保您的項目可以構建。 如果有錯誤,命令可能不起作用。
它生成了所有模型以及上下文(使用每個實體的OnModelCreating()設置)。 如果您不需要所有模型,只需刪除不使用的模型。
所以回答你的問題:
我希望這有幫助。
scaffold命令存在一個選項--table(-t):
dnx ef dbcontext scaffold connectionstring provider -t dbo.tab1 -t dbo.tab2
對於EF 7,您不再需要使用base初始化,它會導致編譯器錯誤。 您需要查看Microsoft EF7啟動文檔。
你想要關注新的
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// Visual Studio 2015 | Use the LocalDb 12 instance created by Visual Studio
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.ConsoleApp;Trusted_Connection=True;");
// Visual Studio 2013 | Use the LocalDb 11 instance created by Visual Studio
// optionsBuilder.UseSqlServer(@"Server=(localdb)\v11.0;Database=EFGetStarted.ConsoleApp;Trusted_Connection=True;");
// Visual Studio 2012 | Use the SQL Express instance created by Visual Studio
// optionsBuilder.UseSqlServer(@"Server=.\SQLEXPRESS;Database=EFGetStarted.ConsoleApp;Trusted_Connection=True;");
}
我會從現有數據庫中嘗試代碼優先。 您可以創建上下文類,看起來像這樣:
public class MyDbContext : DbContext {
public MyDbContext()
: base("connectionString") {
Database.SetInitializer<MyDbContext>(null);
}
public virtual DbSet<Table1> Table1s { get; set; }
public virtual DbSet<Table2> Table2s { get; set; }
...
}
您可以僅為所需的表包含DbSet。 您可以根據這些模型創建所需的相應模型(表1,表2等)和腳手架控制器和視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.