我今天有一个噩梦般的日子.我已经成功地在本地进行了代码优先开发,并且一切都很顺利,我的数据库被删除并在模型更改时根据需要重新创建.但是,在尝试将项目“升级”到mydiscountasp.net上的sqlserver2008登台服务器时,我的问题就开始了.由于用户无法删除/重新创建共享主机数据库,因此我进行了本地备份并将其还原到服务器上.更进一步..当我通过sqlserver mgt studio登录服务器时,我可以看到数据库,它看起来都很好.但是,我似乎无法弄清楚如何通过web.config连接到数据库.我开始使用简单的ado.net sysntax连接字符串:
<add name="MyWebSiteContext" connectionString="Server=esql2k123.discountasp.net; Database=sql2008R2_123456_test;uid=sql2008R2_123456_test_user;pwd=mypassword;" providerName="System.Data.sqlClient"/>
这不起作用,并给出一个错误,说关键字’服务器’无法识别.经过大量的谷歌搜索后,似乎问题很可能与providerName =“System.Data.sqlClient”部分有关.
所以在将其更改为providerName =“System.Data.EntityClient”时,我充满了希望.唉,同样的故事.
为了缩短(非常)冗长的故事,我尝试了许多排列(突变是操作词!! :)但似乎无法达到代码优先ef连接字符串要求的正确语法要求.
手指,脚趾和眼睛xx’d ..
[UPDATE]我设法通过格式化我的连接字符串(ALMOST)工作如下:
<add name="GBCWebSiteContext" connectionString="Data Source=esql2k123.discountasp.net;Initial Catalog=sql2008R2_123456_test;Persist Security Info=True;MultipleActiveResultSets=True;User ID=sql2008R2_123456_test_user;Password=mypass" providerName="System.Data.sqlClient"/>
我现在能够在执行linq选择时停止并调试控制器操作.但是,在尝试返回行时,我现在收到一个异常,该异常表明:触发器返回结果集,服务器选项’disallow results from triggers’为true
那么,这里拼图的最后一块是什么,是连接字符串中的一个额外选项来否定这个问题?
[更新2]
哈利卢拉 – 我已经破解了坚果.正如我已经清除了global.asax行:
Database.Setinitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<MyWebSiteContext>());
我没有意识到我需要在Database.Setinitializer()中包含一个空引用.
瞧,以下是我的问题:
Database.Setinitializer<MyWebSiteContext>(null);
谢谢大家的各种建议,他们帮助我专注于这个问题.很高兴 :)
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。