我正在使用 EF,存储库模式和服务来访问数据,我的数据发生了一些奇怪的事情:
public interface IEntity {
int ID { get; set; }
}
public partial class Page : IEntity {
public ICollection<Post> Posts { get; set; }
public UserProfile User { get; set; }
int _id;
[Key]
public int ID {
get { return _id; }
set { _id = value; }
}
}
public partial class Post : IEntity {
public Page Page { get; set; }
int _id;
[Key]
public int ID {
get { return _id; }
set { _id = value; }
}
}
所以我有这些代码优先模型,这个查询曾经工作过:
var posts = (from p in postDb.GetAll()
where p.Page.User.ID == userId && p.Status == Status.Pending
select p);
我不再这样做了,因为p.Page = null
即使数据库中存在数据。如果我做类似的事情:select p.Page.Count()
- 我会得到正确的计数,但如果我这样做:select p.Page
,什么都没有......
我不明白我如何发现/修复出了什么问题?