我有以下两个类(为简洁起见而简化):
public class Report
{
public int Id { get; set; }
public string Discriminator { get; set; }
public int FileId { get; set; }
public string AuthorId { get; set; }
public string ReportPhase { get; set; }
}
和
public class DailyObservationReport : Report
{
public int DayOfTraining { get; set; }
public DateTime DateOfTraining { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
}
我已将它们添加到ApplicationDbContext中,如下所示: public DbSet Report {get;组; }
公共public DbSet<Amber.Models.ReportingModels.DailyObservationReport>DailyObservationReport { get; set; }
public DbSet<Amber.Models.ReportingModels.Rating> Rating { get; set; }
我已经使用视图在我的表中成功创建了大约10个测试报告,所以我知道应该在LINQ查询中返回记录。我的理解是因为我有鉴别器列,这个LINQ查询应该返回上下文中的所有DailyObservationReports
var test2 = from r in _context.DailyObservationReport
select r;
然而,它并没有,也没有这个
var test = from r in _context.Report
where r.Discriminator.Equals("DailyObservationReport")
select r;
有没有人知道为什么我无法访问我的数据库中的记录?
答案 0 :(得分:0)
看起来您仍在测试,可能只是在调试器中验证您的查询。如果是这种情况那么它可能只是由于IQueryable的延迟执行使得它看起来没有结果。试试这个,看看test2
或test
是否仍为空。
var test2 = (from r in _context.DailyObservationReport
select r).ToArray();
或
var test = (from r in _context.Report
where r.Discriminator.Equals("DailyObservationReport")
select r).ToArray();