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

本文关键字:创建 存储过程 方法 框架 CreateDatabase 实体 | 更新日期: 2023-09-27 17:50:24

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

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

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

代码工作,数据库创建完成。我的问题是这个方法不创建存储过程。请帮助我,让我知道是否有其他方法可以做到这一点。

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

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

这永远不会为您创建存储过程。EDMX如何知道存储过程中包含了什么逻辑?存储过程的一个特点是封装/隐藏其实现,因此调用者只知道名称、参数和结果,而不知道内部情况。必须将存储过程的创建脚本作为单独的文件/资源包含,并在创建数据库后执行。