加入並包含在實體框架中

.net c# entity-framework linq sql

我有以下查詢linq到實體。問題是它似乎沒有加載“標籤”關係,即使我已經包含了它的東西。如果我不加入標籤,它工作正常,但我需要這樣做。

            var items = from i in db.Items.Include("Tags")
                        from t in i.Tags
                        where t.Text == text
                        orderby i.CreatedDate descending
                        select i;

有沒有其他方式來詢問此查詢?也許拆分或什麼?

一般承認的答案

那麼,Include與哪里相矛盾。包括說“加載所有標籤”。在哪裡說“加載一些標籤”。當查詢和Include之間存在矛盾時,查詢將始終獲勝。

要從包含至少一個標記== text的任何項目返回所有標記:

        var items = from i in db.Items.Include("Tags")
                    where i.Tags.Any(t => t.Text == text)
                    orderby i.CreatedDate descending
                    select i;

(未經測試,因為我沒有您的數據庫/型號)

這是一本關於LINQ的非常好的免費書



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因