使用ASP.NET MVC,Entity Framework 6 SQL Express上的代码优先在我的本地机器上一切运行正常。当我发布到Windows Azure时,事情开始崩溃。默认的MVC页面显示得很好。我认为这些数据是正确的,因为我可以将Azure数据库与本地SQL Express进行比较,除了__MigrationHistory中的几条记录外,所有内容都是相同的。这是一个新的应用程序,所以我不认为有关从EF以前版本转换的其他SO问题适用。使用Windows Azure上的EntityFramework创建无效的列名'CreatedOn'
当我尝试访问查询数据库的页面时,我将Visual Studio调试器附加到Azure网站时出现以下异常。它在第一次调用dbContext.SingleOrDefault时失败。请注意,在暂停时,我可以在调试器中看到dbContext的完整数据。
System.Data.SqlClient.SqlException occurred
_HResult=-2146232060
_message=Invalid column name 'CreatedOn'.
HResult=-2146232060
IsTransient=false
Message=Invalid column name 'CreatedOn'.
Source=.Net SqlClient Data Provider
ErrorCode=-2146232060
_doNotReconnect=false
Class=16
LineNumber=2
Number=207
Procedure=""
Server=tcp:*.database.windows.net,1433
State=1
StackTrace:
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
InnerException:
任何帮助将不胜感激。
请发布引发此异常的代码以及您的模型。 – 2014-09-26 01:08:29
是的,粘贴代码片段,模型并检查Azure SQL数据库模式。我相信您首先发布了您的解决方案,该解决方案创建了D,然后您添加了该列,但未在Azure SQL DB上执行迁移!还有更多 - 您可以使用Azure Connection字符串在本地运行和调试。不需要发布到网站上查看SQL Azure的结果... – astaykov 2014-09-26 07:10:42
我想我的迁移有问题,但我从来没有名为CreatedOn的列。使用Azure连接字符串对于解决此问题非常有帮助。 – 2014-09-26 13:23:46