实体框架Create Database()方法不创建存储过程

时间:2011-04-18 19:29:50

标签: c# winforms entity-framework

我有一个SQL Server 2008 DBMS,我已经创建了一个EDM(从数据库生成),我的应用程序几乎完成了,一切都很好。

但是,在我的应用程序中,我想让最终用户创建数据库,因此我创建了一个表单,让用户指定服务器和数据库名称并提供了一个创建按钮。当用户单击“创建”按钮时,将在指定的服务器上创建新数据库。为此,我使用了CreateDatabase()方法,如下所示:

string connString = ...;
MyEntity context = new MyEntity(connString);
context.CreateDatabase();

代码有效,数据库已创建。我的问题是这个方法不会创建存储过程。如果还有其他方法可以帮助我,请告诉我。

PS:当我从数据库生成EDM时,我选择将其包含在EDM中,并使用函数import在我的代码中使用此存储过程以确保它包含在我的EDM中。

1 个答案:

答案 0 :(得分:4)

这永远不会为您创建存储过程。 EDMX应该如何知道存储过程中包含哪些逻辑?存储过程的一个特征是它们包装/隐藏它们的实现,因此调用者只知道名称,参数和结果,但不知道内部。必须将存储的存储过程的创建脚本包含为单独的文件/资源​​,并在创建数据库后执行它。