我是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;
}
看到這個[Repo](https://github.com/Arch/UnitOfWork)實現** ChangeTable **,你可以從中得到它的想法。 –
我不確定這是否正確。恕我直言,使用包含日期的附加(索引)列和保留單個表格是更好的方法。 – MarkusSchaber