我有一個使用EF6的通用存儲庫。這個問題與需要「包含」的關聯屬性有關,即使它不應該。以下作品:實體框架存儲在var中的Lambda謂詞與關聯
IQueryable<User> dbQuery = _db.Set<User>();
return dbQuery.Where(x => x.Child.Name == "Foo").ToList();
但是,以下不工作:
Func<User, bool> filter = x => x.Child.Name == "Foo";
IQueryable<User> dbQuery = _db.Set<User>();
return dbQuery.Where(filter).ToList();
它拋出一個「對象未設置...」異常的兒童。
下解決它:
Func<User, bool> filter = x => x.Child.Name == "Foo";
IQueryable<User> dbQuery = _db.Set<User>();
dbQuery = dbQuery.Include(x => x.Child);
return dbQuery.Where(filter).ToList();
我不明白爲什麼這是必要的,但。任何人都知道一種方法來解決這個問題,而不使用「包含」?
哇,這很快。乾杯,它的工作! –