这是我的实体:
public abstract class ResourceBase
{
[Key]
int Id { get; set; }
[ForeignKey("Resource")]
public Guid ResourceId { get; set; }
public virtual Resource Resource { get; set; }
}
public class Resource
{
[Key]
public Guid Id { get; set; }
public string Type { get; set; }
}
public class Message : ResourceBase
{
[MaxLength(300)]
public string Text { get; set; }
}
然后我的查询是这样的:
var msgs = messages.Where(x=>x.Id == someRangeOfIds).Include(m=>m.Resource).Select(x => new
{
message = x,
replyCount = msgs.Count(msg => msg.Id = magicNumber)
});
我在禁用代理创建的情况下运行它,结果是所有消息,但所有资源属性都为 NULL。我检查了数据库,并找到了具有匹配指南的资源。
出于说明目的,我极大地简化了我的现实生活场景,但我想你会发现你可以用这个来重现这个问题。