gpt4 book ai didi

.net - web.config 中的 EF 4.1 代码优先连接字符串

转载 作者:行者123 更新时间:2023-12-05 00:37:31 25 4
gpt4 key购买 nike

我今天有点噩梦般的一天。我一直在本地成功地进行代码优先开发,一切进展顺利,我的数据库被删除并在模型更改时根据需要重新创建。但是,在尝试将项目“升级”到 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..

[更新] 我已经设法通过如下格式化来使我的连接字符串(几乎)工作:
<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 选择时停止和调试 Controller 操作。但是,在尝试返回行时,我现在收到一个异常,指出: 触发器返回了一个结果集,并且服务器选项“禁止触发器的结果”为真

那么,我在这里拼图的最后一块是什么,连接字符串中的附加选项是否可以解决这个问题?

[更新 2]
Hallellulah - 我已经破解了坚果。正如我重新编写的 global.asax 行:
Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<MyWebSiteContext>());

我没有意识到我需要包含对 Database.SetInitializer() 的空引用。

瞧,以下对我的问题进行了排序:
Database.SetInitializer<MyWebSiteContext>(null);

谢谢大家的各种建议,他们帮助我专注于问题。很高兴 :)

最佳答案

您是否尝试过数据源和初始目录?

sqlConnectionString="data source=myServer.myDomain.com;initial catalog=mydbName;user id=myUid;password=myPwd"

关于.net - web.config 中的 EF 4.1 代码优先连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6832531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com