簡體   English   中英

使用Entity Framework 4.0檢索數據的最佳實踐

[英]Best Practice for retrieving data using Entity Framework 4.0

我正在嘗試使用Entity Framework了解一些基本的最佳實踐。

我的EDM設計包含組和用戶實體,該組可能包含用戶和其他組。

問題是:

從組中檢索用戶的最佳方法是什么?

為了簡化組,只需創建上下文對象並從groups表創建列表。

但是,當我想要查看組中的用戶時,上下文將被關閉(應該是這樣)。

我想過兩種方法:

1)將組發回,將其附加到上下文並在Users上使用Load()方法並返回用戶列表。

在這里,我不知道何時連接,當我不應該,當EDM增長時,我將不得不為每個引用加載來回做很多事情

2)來自用戶端的linq查詢。
來自u的context.Users,其中u.Groups.Contains(group)選擇你

在這里,我得到一個例外,只能使用原始類型。

那么這樣做的正確方法是什么?

謝謝羅尼

您的用戶和群組之間是否存在1對多或多對多的關系並不十分清楚。 根據上面的描述, a group may contain users - 它是一對多的。 根據你的代碼: from u in context.Users where u.Groups.Contains(group) select u - 它是多對多的。 因此,我將為兩種情況提供樣本。

一對多 - 一個組包含多個用戶,一個用戶只能屬於一個組:

context.Users.Where(u => u.Group.Id == group.Id);

多對多 - 一個組包含多個用戶,一個用戶可以屬於多個組:

context.Users.Where(u => u.Groups.Any(g => g.Id == group.Id));
context.Users.Select(u => u).Where(e => e.Groups.Contains(group))

那樣有用嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM