【问题标题】:Entity Framework Create Database & Tables At Runtime实体框架在运行时创建数据库和表
【发布时间】:2012-07-07 08:30:42
【问题描述】:

我在 .edmx 文件中创建了一些表,并通过选择“从模型生成数据库”并在数据库上手动执行 .edmx.sql 文件来构建表来生成数据库。

然而,现在我正在创建一个设置对话框,允许用户将程序连接到他们自己的数据库。我认为运行context.CreateDatabase 足以创建数据库以及表,但未创建表。

当用户指定自己要使用的服务器和数据库时,创建数据库和表的首选方法是什么?

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/5701608/…
  • 我认为这是代码优先,而不是模型优先。
  • 回答您自己的问题并将其标记为已回答是正确的。我不知道为什么@Mark Kram 建议您删除答案并修改问题。如果您认为您的解决方案解决了问题,请取消删除您的答案。
  • 这就是我一直对 stackoverflow 的看法,我不知道为什么有人会在我找到答案后拒绝我回到这里提供答案。我什至刚刚发现:meta.stackexchange.com/questions/17845/…

标签: c# wpf entity-framework


【解决方案1】:

好的,我想出了一种创建表和数据库的方法(不一定是最好的方法)。 CreateDatabaseScript的结果可以执行:

// create the database
db.CreateDatabase();
// grab the script to create the tables
string createScript = db.CreateDatabaseScript();
// execute the script on the database
db.ExecuteStoreCommand(createScript);

您必须进行一些检查以确保尚未创建表和数据库,否则应用程序将崩溃。

不过,我将尝试将我的项目切换到代码优先。希望以上内容对任何寻找的人有所帮助。

【讨论】:

  • 您应该考虑编辑您的原始帖子,而不是回答您自己的问题。
  • @MarkKram,回答您自己的问题不仅可以,而且我会说这是对 SO 的推荐方法。这样,您就可以清楚地区分需要更多关注的未回答问题和已解决的问题。
  • @walther 您知道您可以编辑原始帖子这一事实。您可以简单地指出您的问题的解决方案。它使搜索的人更容易找到正确的答案,只是说'。
  • @MarkKram,我知道这一点,但也许你不知道我们不是在谈论论坛帖子,而是在问答网站上编辑问题。答案不应该是问题的一部分,因为它通常会使人们感到困惑。 SO 的目标是提供一种简单的机制——有人提出问题,有人提供答案。如果将这两个部分结合在一起,它会突然变得非常奇怪,尤其是当线程中有更多答案时。哪个答案是?问题中的那个?还是其他人的其中一个,而 OP 只是懒得接受?
  • @walther 好的,我们同意不同意。
猜你喜欢
  • 1970-01-01
  • 2019-12-24
  • 1970-01-01
  • 2021-12-30
  • 2011-09-28
  • 1970-01-01
  • 2018-07-03
  • 2015-09-22
相关资源
最近更新 更多