我嘗試使用 Sqlite 熟悉 EF。
我設法創建了一個模型,并基于該模型使用遷移創建了一個表。
我的問題是如何創建多個相同模型的表?
模型示例:
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}
我的應用程式資料庫背景關系示例:
public class ApplicationDbContext:DbContext
{
public string DbPath { get; private set; }
public DbSet<Blog> Blogs { get; set; }
public ApplicationDbContext()
{
DbPath = $"HelloBlog.db";
}
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite($"Data Source={DbPath}");
}
我的問題是如何在運行時添加新表,例如。Blog_{Date}?
因為我事先不知道我將創建多少張表。
uj5u.com熱心網友回復:
我的問題是如何在運行時添加新表,例如。博客_{日期}?因為我事先不知道我將創建多少張表。
你的資料管理方法有缺陷;您正在使用表名來存盤應該存盤在列中的資料
在您的博客表中有一個 PostedDate 列或類似的列,將您要編碼到表名中的任何資料存盤到列中。索引列
無論你之前想做什么,比如:
SELECT * FROM Blog_2000_01_01
SELECT * FROM Blog_2000_01_02
應該這樣做:
SELECT * FROM Blog WHERE PostedDate = '2000-01-01'
SELECT * FROM Blog WHERE PostedDate = '2000-01-02'
因此,在 EF 術語中,它是:
context.Blog.Where(b => b.PostedDate == new DateTime(2000,1,1))
context.Blog.Where(b => b.PostedDate == new DateTime(2000,1,2))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/364665.html
