我想寫一個簡單的查詢,但也有一些問題。 我有2個表M到N:實體框架多對多查詢
用戶 - >事件。
我想獲取特定事件的所有用戶(通過eventId獲取此事件)。
public IQueryable<User> GetUsersByEventId(int eventId)
{
IQueryable<User> query = this.Context.Users.AsQueryable();
return query.Where(x => x.Events.SingleOrDefault(e => e.EventId == eventId)); ??
}
東西丟失,我不知道什麼,有人可以幫我嗎?非常感謝 !
如果在連接表上沒有其他屬性,我認爲爲連接表本身設置模型並不常見。通常,您只需通過集合將事件直接連接到用戶。 – tvanfosson
@tvanfosson你的意思是讓EF創建表,所以你甚至不必?我這樣做了一次,結果很糟糕,因爲查詢EF做的是'N + 1',所以我堅持將Models2DB 1映射到1以獲得更多控制權。因此'IQueryable'而不是'List'。 – sed
不,使用OnModelCreating通過表直接在用戶和事件之間映射,但不直接在模型中公開連接表。見http://www.codeproject.com/Articles/234606/Creating-a-Many-To-Many-Mapping-Using-Code-First – tvanfosson