ここに私のエンティティがあります:
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 です。データベースを確認したところ、Guid が一致するリソースが存在します。
説明のために実際のシナリオを大幅に単純化しましたが、これだけで問題を再現できることがわかると思います。