【发布时间】:2016-02-04 21:05:50
【问题描述】:
在带有实体框架的 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()。
如果可能的话,希望它只需要保留 ONE Model 类定义,否则该项目将需要每个月一个 Model 引用,如果是 10 年,则需要定义许多 Model;可以这样做,但我想以可靠性为主要目标正确设计它。
可以在运行时动态切换表吗?还是应该每月有一个模型,应用程序以这种方式直接引用该表?
【问题讨论】:
-
这比添加月份列容易吗?.. 如果您想继续这样做,您可能只想使用存储过程
-
我可以添加一列,但每个月大约有 400 列和近 100 条记录,每月
-
你说表名变了但属性不变,所以每个月表都有相同的列?因此,如果您只是在一个表中添加了一个月列,那么您将拥有 401 列并且只有 12000 条记录?
-
即使您将列拆分为一个键/值表,该表在 10 年内只有大约 480 万条记录.. 这不是很多
-
听起来您将数据库用作电子表格的集合。你会让自己的生活变得非常困难。听听其他评论者......当“啊哈!”时刻到了,你就再也回不去了。
标签: c# sql-server asp.net-mvc entity-framework