在 SQL Express 上使用 ASP.NET MVC、Entity Framework 6 Code First,一切都在我的本地计算机上运行良好。当我发布到 Windows Azure 时,事情开始崩溃。默认的 MVC 页面显示得很好。我认为数据是正确的,因为我可以将 Azure 数据库与本地 SQL Express 进行比较,除了 __MigrationHistory 中的几条记录之外,一切都是相同的。这是一个新应用程序,因此我认为有关从以前版本的 EF 转换的其他问题不适用。
当我尝试访问查询数据库的页面时,当我将 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:
任何帮助将不胜感激。
最佳答案
似乎这与迁移和删除 CreatedOn 列有关。
我使用 MiniProfiler 得到此异常。我从 bin 文件夹中删除了 pdb 文件(按照 MiniProfiler github 站点中的帖子中的建议),并且不再发生这种情况。
您可能想要检查对 EF 的引用,因为它可能是针对早期版本的 EF 构建的 [nuget] 包中的引用。
关于entity-framework - 在 Windows Azure 上使用 EntityFramework 时出现无效的列名称 'CreatedOn',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26048525/