获取 SQL 在实体框架中创建新表
Posted
技术标签:
【中文标题】获取 SQL 在实体框架中创建新表【英文标题】:Get SQL creating new table in Entity Framework 【发布时间】:2014-02-16 17:36:08 【问题描述】:我使用 Entity Framework 6.0.2 作为 ORM,我创建了新类型
public class DataSourceImportReport
public int Id get; set;
public int ImportedCount get; set;
public DateTime ImportDate get; set;
public DataSource DataSource get; set;
我添加了映射到OnModelCreating
方法
ModelBuilder
.Entity<DataSourceImportReport>()
.Map(m => m.ToTable("DataSourceImportReports", dataSourceSchemaName));
我想获取 EF 生成的 SQL 语句以在数据库中添加适当的表。
我该怎么做?
【问题讨论】:
我不太清楚你的问题。为什么需要 sql 语句来创建表,如果你设置了一切正确 ef 在你第一次调用数据库时创建表。 【参考方案1】:您可以使用ExecuteCommand()
方法自己创建表,例如
db.ExecuteCommand("CREATE TABLE...");
【讨论】:
EF 将在数据库中创建表,我想获取这个创建表的 sql【参考方案2】:您可以在 consol 包管理器中使用此代码并生成数据库:
PM> enable-migrations
PM> add-migration a
PM> update-database -verbose
你必须在启动项目中设置连接字符串。
【讨论】:
也就是说,桌子会贫血。没有条件,没有索引,没有高级选项。好的,表高级选项很少使用,但见鬼,唯一约束和索引是某种基线。 查看此链接; weblogs.asp.net/manavi/archive/2011/01/23/… 是的,正如我所说 - 贫血。见过过滤索引吗?一个与关系无关但用于咳嗽加速查询的索引?分区表?或者计算字段....有一个索引来加速查询?正如我所说 - 贫血。尽可能原始,最小的公分母,对于每个从未读过 SQL 书籍的人来说已经足够了。 ok..我认为你应该读一本关于实体框架和 orm 概念的书。 几乎没有。我很久以前写过类似的东西。关键是问题是数据库的自动生成,而我所知道的任何 ORM 都做得很糟糕。不,与某些人的想法相反,ORM 不会消除对这些功能的需求。显然,您从未从事过这样的数据库项目,人们会花一天的时间来调整兜售的迁移脚本,其中包含一些对小数据无用的 sql server 功能。就这样吧。迁移对于真正复杂的数据库工作来说是很糟糕的。以上是关于获取 SQL 在实体框架中创建新表的主要内容,如果未能解决你的问题,请参考以下文章
带有 EF6 的 WPF 应用程序不会在 SQL Server Enterprise 中创建新数据库
如何从视图中复制数据并在 sql server 数据库中创建新表? [复制]