1

我是ASP.NET Core的新手。我正在使用帶有EF Core的VS2017 ASP.NET Core來構建應用程序,該應用程序允許我管理保存在數據庫表中的每日採購訂單。如何在運行時使用EF Core創建數據庫表?

在Web上有一個輸入文本框,允許我輸入表名,當我單擊創建按鈕時,將創建新表。我會每天創建一個新表格,例如「Order25072017」,「Order26072017」等等。

1)如何在asp.net核心MVC中使用EF核心以編程方式創建新表?

這些新表使用相同的「訂單」模型/模式,獲取訂單列表的代碼是「_context.Order25072017.ToList();」。我打算用表名列表創建下拉列表。選中後,它將允許我從所選表格中獲取訂單列表。

2)我需要在OnModelCreating()中做什麼? 3)如何在我的查詢中更改表名_context。{newtable} .ToList()在運行時?

的DB語境:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) 
     : base(options) 
    { 
    } 

    public DbSet<Order> Order25072017 { get; set; } 

    protected override void OnModelCreating(ModelBuilder builder) 
    { 
     base.OnModelCreating(builder); 
    } 
} 

的型號:

public class Order 
{ 
    public int ID { get; set; } 
    [Required] 
    public string Product { get; set; } 
    public int Price { get; set; } 
    public int Discount { get; set; } 
} 

構造在OrderController:

private readonly ApplicationDbContext _context; 
public OrderController(ApplicationDbContext context) 
{ 
    _context = context; 
} 
+0

看到這個[Repo](https://github.com/Arch/UnitOfWork)實現** ChangeTable **,你可以從中得到它的想法。 –

+0

我不確定這是否正確。恕我直言,使用包含日期的附加(索引)列和保留單個表格是更好的方法。 – MarkusSchaber

回答

相關問題