Entity framework 4.1 停止DefaultMembershipProvider的EF数据库初始化

Entity framework 4.1 停止DefaultMembershipProvider的EF数据库初始化,entity-framework-4.1,asp.net-mvc-4,membership-provider,Entity Framework 4.1,Asp.net Mvc 4,Membership Provider,团队,我正在部署一个ASP.NET MVC应用程序。当我部署它时,应用程序工作正常,但当我调用Membership.CreateUser时,它最终尝试创建数据库,即使它已经存在。由于数据库已经存在,我需要做什么才能获取它,使它不会尝试调用CreateMembershipEntities 我尝试过Database.SetInitializer对于一个什么都不做的初始值设定项,我尝试过删除Web.config中的defaultConnectionFactory——我目前没有选择 我期待你的帮助 更新

团队,我正在部署一个ASP.NET MVC应用程序。当我部署它时,应用程序工作正常,但当我调用
Membership.CreateUser
时,它最终尝试创建数据库,即使它已经存在。由于数据库已经存在,我需要做什么才能获取它,使它不会尝试调用
CreateMembershipEntities

我尝试过
Database.SetInitializer
对于一个什么都不做的初始值设定项,我尝试过删除Web.config中的
defaultConnectionFactory
——我目前没有选择

我期待你的帮助

更新

我昨天才发现,它尝试创建数据库的原因是因为主机服务器不允许连接到查询
sysdatabases
,因此数据库从不存在,因此总是尝试创建它。看来,我可能不得不回到旧式的AspNet会员资格提供商,也不再使用EF代码优先模式

出于个人原因,我想让微软知道,谢谢你!这种代码优先模式适用于部署在您自己的服务器上的应用程序,但如果将它们放在云中(不管怎么说,云中的一切都在进行),那么您的运气就不好了。微软干得好!为什么不试着连接数据库看看它是否存在?!?如果连接成功,它必须存在,否则我想它不会存在。

看看这里:
它显示web.config的成员资格配置部分。您必须编写一个类似的部分,并将connectionStringName=“您的连接字符串”放入其中。在连接字符串中指定已有数据库的信息

“我已尝试将Database.SetInitializer设置为不执行任何操作的初始值设定项”:禁用DB初始化的正常方法是将初始值设定为
null
,即
Database.SetInitializer(null)
。但是我不知道这个EF东西与ASP.NET MembershipProvider有什么关系,它使用存储过程并拥有自己的连接(除非您以某种方式自定义了提供程序)。如果将初始值设定项设置为
null
解决了这个问题,我会感到惊讶。@Slauma我遇到的问题是,它试图在生产数据库中已经存在成员资格表时创建这些表。我在生产服务器上没有拖放和创建数据库的权限。这里值得注意的另一件事是,生产服务器是GoDaddy,我使用的成员资格提供程序是DefaultMembershipProvider,它在新的ASP.NET MVC 4应用程序中配置。它在我的开发箱上工作得很好。谢谢你的回答。让我问你一个简单的问题。我最近发现,就像昨天下午一样,我遇到这么多麻烦的原因是主机服务器不允许连接字符串查询系统数据库。由于我使用的是EF代码优先的方法,默认成员资格提供程序尝试验证数据库的存在性。我应该回到老式的AspNet会员提供商那里吗?问题的答案是使用SqlMembershipProvider而不是DefaultMembershipProvider。SqlMembershipProvider符合成员资格提供程序接口,但其工作方式与以前一样-如果数据库不存在,它不会尝试创建数据库。我建议大家不要先使用EF代码。这个答案中的链接已经过时了。。。没有它,我不认为答案中有任何有用的信息?