我有一个想法,我想在我的数据库中动态添加表格(通过网站)。我可能不能使用实体框架,但我不确定最好的工具是什么。
因此,想法是用户能够创建新的“实体”,从而在数据库中创建新表。用户只能创建3种类型的实体(但每种类型的多种),理论上我可以有3个带有实体过滤器的表,但由于每个实体将有数百万条记录,实体永远不会一起使用我不想将它们存储在同一个表中。
所以我最初的想法是为每个实体创建一个表,与数据库通信的最佳方式是什么?自定义数据访问层?
我也对其他建议持开放态度......
答案 0 :(得分:0)
您可以将Dapper与动态对象一起使用,它非常快且完全符合您的需求。
答案 1 :(得分:0)
我最终使用了实体框架。
首先,我为每种类型创建了一个模板。让我们说TypeA,TypeB并将它添加到我的模型中。然后我使用模型构建器在Mappings之间切换
SqlConnection conn = new SqlConnection( ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
DbModelBuilder builder = new DbModelBuilder(DbModelBuilderVersion.V6_0);
builder.Configurations.Add(new EntityTypeConfiguration<TypeA>());
builder.Entity<Tweet>().ToTable("Table1");
using (MyEntities myEntities= new MyEntities (builder.Build(conn).Compile()))
{
var a = myEntities.Tweets.ToList();//Return table 1
}
DbModelBuilder builder2 = new DbModelBuilder(DbModelBuilderVersion.V6_0);
builder2.Configurations.Add(new EntityTypeConfiguration<TypeA>());
builder2.Entity<TypeA>().ToTable("Table2");
using (MyEntities myEntities= new MyEntities (builder.Build(conn).Compile()))
{
var a = myEntities.Tweets.ToList();//Return table 2
}