C# 实体框架创建数据库&;运行时的表

C# 实体框架创建数据库&;运行时的表,c#,wpf,entity-framework,C#,Wpf,Entity Framework,我在.edmx文件中创建了一些表,并通过选择“从模型生成数据库”并在数据库上手动执行.edmx.sql文件来生成数据库,以构建表 但是,现在我正在创建一个设置对话框,允许用户将程序连接到自己的数据库。我认为运行数据库和表就足够了,但是表并没有被创建 当用户指定要使用自己的服务器和数据库时,最初从模型开始时,创建数据库和表的首选方法是什么?好的,我找到了创建表和数据库的方法(不一定是最好的方法)。可以执行以下操作的结果: // create the database db.CreateDataba

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

但是,现在我正在创建一个设置对话框,允许用户将程序连接到自己的数据库。我认为运行数据库和表就足够了,但是表并没有被创建


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

好的,我找到了创建表和数据库的方法(不一定是最好的方法)。可以执行以下操作的结果:

// 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);
您必须进行一些检查,以确保尚未创建表和数据库,否则应用程序将崩溃


不过,我打算先尝试将我的项目转换为代码。希望以上内容能帮助任何人寻找答案。

这可能会有所帮助:我认为这是针对代码优先,而不是模型优先。回答自己的问题并标记答案是正确的。我不知道为什么@Mark Kram建议你删除答案并修改问题。如果您觉得您的解决方案解决了问题,请删除您的答案。这就是我一直对stackoverflow的想法,我不知道为什么有人会因为我找到答案后回来提供答案而否决我。我甚至发现:你应该考虑编辑你原来的帖子,而不是回答你自己的问题。@MarkKram,回答你自己的问题不仅可以,而且我认为这是一种推荐的方法。这样你就可以清楚地区分需要更多关注的未回答的问题和已解决的问题。@walther你知道你可以编辑你原来的帖子。你可以简单地指出你的问题的解决方案。这让人们搜索找到正确答案变得更容易了,只需说“.@MarkKram,我知道,但也许你没有意识到我们谈论的不是论坛帖子,而是在问答网站上编辑问题。答案不应该是问题的一部分,因为它通常会让人困惑。SO的目标是提供一个简单的机制——有人提出问题,有人提供答案。如果你把这两个部分连在一起,它会突然变得非常奇怪,尤其是当线程中有更多的答案时。答案是什么?问题中的那个?或者是来自其他人的,OP只是懒得接受?@walther好吧,让我们同意不同意。