我有一个SQL Server 2008 DBMS,我已经创建了一个EDM(从数据库生成),我的应用程序几乎完成了,一切都很好。
但是,在我的应用程序中,我想让最终用户创建数据库,因此我创建了一个表单,让用户指定服务器和数据库名称并提供了一个创建按钮。当用户单击“创建”按钮时,将在指定的服务器上创建新数据库。为此,我使用了CreateDatabase()
方法,如下所示:
string connString = ...;
MyEntity context = new MyEntity(connString);
context.CreateDatabase();
代码有效,数据库已创建。我的问题是这个方法不会创建存储过程。如果还有其他方法可以帮助我,请告诉我。
PS:当我从数据库生成EDM时,我选择将其包含在EDM中,并使用函数import在我的代码中使用此存储过程以确保它包含在我的EDM中。
答案 0 :(得分:4)
这永远不会为您创建存储过程。 EDMX应该如何知道存储过程中包含哪些逻辑?存储过程的一个特征是它们包装/隐藏它们的实现,因此调用者只知道名称,参数和结果,但不知道内部。必须将存储的存储过程的创建脚本包含为单独的文件/资源,并在创建数据库后执行它。