[英]How to Switch between Tables in MVC at runtime?
在帶有Entity Framework的MVC項目中,模型具有以下類:
[Table("astrTableJan16")]
public class astrTable
{
[Key]
public int ID { get; set; } (...rest of variables)
在數據庫中,每月只有一張表,因此astrTableJan16,astrTableFeb16,然后再返回astrTableDec15等。我已經從SQL Management Studio中手動創建了表,復制了原始表,
SELECT * INTO astrTableNov15 FROM dbo.astrTable
當前要使用不同的月份,請手動修改[Table(“”)]條目,並運行項目(在調試器中),然后將CRUD函數應用於該表。
目標是能夠在運行時在這些表之間切換,以便在用戶選擇的月份為他們提供CRUD功能。 會有顯示可用月下拉列表控件,用戶挑選月份, 而具體的正裝表,可以修改/保存。 這可能嗎?
嘗試使用Sql命令從
using System.Data.SqlClient;
到目前為止,可以讀取數據,但是必須重新定義db.SaveChanges()。
並希望它盡可能地僅保留一個Model類定義,否則該項目每個月將需要一個Model引用,如果要使用10年,則需要定義許多Model。 可以通過這種方式完成,但是我想以可靠性為主要目標進行適當的設計。
可以在運行時即時切換表嗎? 還是每月應該有一個Model,並且應用程序以這種方式直接引用該表?
Month NVARCHAR(128) NOT NULL
(字符串列)。 這不是一個很好的數據類型,但它與表的其余部分保持一致,我現在不想介紹其他概念。 Year INT NOT NULL
。 然后,當您要使用特定的月份/年份時,您可以像這樣向數據庫詢問:(例如,2016年1月)
SELECT * FROM table WHERE Month = 'January' AND Year = 2016
添加列后,您將希望將每個現有表合並到一個表中。 因此,可以說您的表(現在已經存在)每個都有(相同)400列。 您的新表將具有402列。 每個現有表中的數據將堆積在新表中的行中。
例如:ExistingTableJan2015
ID,數據...
1,東西
2,別的東西
和現有表2015年3月
ID,數據...
4,yadda
5,亞達亞達
將合並到NewTable
ID,月,年,數據
2015年1月1日
2015年1月2日,還有其他內容
2015年3月4日,亞達
2015年3月5日,yada yada
因此,現在您只有一個表來存儲所有數據,並且無需在運行時切換表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.