【发布时间】:2016-06-10 10:55:28
【问题描述】:
我有一个服务。
scheduler.Start();
IJobDetail job = JobBuilder.Create<ReportJob>()
.WithIdentity("reportJob", "reportGroup")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("reportTrigger", "reportGroup")
.StartNow()
.WithCronSchedule("0 * * ? * Fri")
.Build();
scheduler.ScheduleJob(job, trigger);
在 ReportJob 我有
var repository = new StoreReportRepository();
repository.GenerateReports();
在 GenerateReports 中我尝试访问 DatabaseContext
var db = new DatabaseContext()
我收到错误:
外键“FK_dbo.UserSession_dbo.User_UserId”引用无效 表'dbo.User'。无法创建约束或索引。见上 错误。
构造函数DatabaseContext():
public ObjectContext Context
{
get {
return (this as IObjectContextAdapter).ObjectContext;
}
}
public DatabaseContext()
: base("name=DatabaseContext")
{
this.Context.ContextOptions.LazyLoadingEnabled = true;
}
我做错了什么? 谢谢
PS UserSession.cs
public class UserSession
{
[Key]
public Guid Id { get; set; }
public Guid UserId { get; set; }
public DateTime Expiration { get; set; }
}
【问题讨论】:
-
查看您的错误 - 无效表
dbo.User。检查这张表,它是否真的存在。 -
@PeterSmith 我有这张桌子。并且方法 GenerateReports 有效,但前提是我从控制器运行它
-
@PeterSmith 原因可能是 asp.net 身份吗?
-
您可以发布 dbml 表关联吗?如果您不在调度服务中对用户进行身份验证,猜想您不需要该关联
-
我可以建议你尝试将你的连接字符串指向一个空的 Db 并让实体框架为你创建数据库结构,然后测试你是否仍然得到这个错误..可能是现有的数据库结构与 DbContext 的预期不匹配?
标签: c# entity-framework windows-services asp.net-identity-2