因此,在数小时后弄清楚为什么在部署到 azure 时没有创建我的数据库表(使用 mvc4 代码优先实体框架),我终于明白这是我设置后端的方式。我有我的通用存储库、工作单元、数据上下文等。(这不会导致问题)。导致我的数据表(500 服务器错误)无法创建的是我的 UnitOfWorkFilter。当我应用它时它不起作用,当我拿走它时它起作用。所以我的问题是有人知道为什么会导致这个问题,以及我可以做些什么来解决这个问题,因为我想继续使用我的过滤器。
这是我的工作单元过滤器:
public class UnitOfWorkFilter : System.Web.Mvc.ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var unitOfWork = DependencyResolver.Current.GetService<IUnitOfWork>();
unitOfWork.Begin();
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var unitOfWork = DependencyResolver.Current.GetService<IUnitOfWork>();
if (filterContext.Exception != null)
{
unitOfWork.Rollback();
return;
}
try
{
unitOfWork.Commit();
}
catch
{
unitOfWork.Rollback();
throw;
}
finally
{
unitOfWork.Dispose();
}
}
}
}