2010-05-11 38 views
4

我有3個實體彼此不相關,我想在一次旅行中獲取所有這些實體到數據庫中,我該怎麼做?在一次旅行中獲取不相關的實體到數據庫中

感謝

+0

你能提供更多信息嗎?你究竟想要做什麼,爲什麼/你如何以這種格式需要數據? – 2010-05-11 17:31:48

+0

Whay你會想要這樣做嗎?如果你認爲它會提高性能,它不會。 – LukLed 2010-05-11 17:32:00

+0

實際上,我只想獲得主要信息的主要實體,並獲得其他兩個實體,它們具有一般信息,我必須將它們展示給最終用戶,所以我不想做更多比一次去數據庫去獲取所有三個實體。 – kathy 2010-05-11 18:37:48

回答

0

你可以做到這一點:

var result = from foo in ctx.Foos 
       from bar in ctx.Bars 
       where foo.id == xxx && bar.id == yyy 
       select new { Foo = foo, Bar = bar}; 

這給你拿具體的foo和在相同的查詢吧。 雖然,這會產生一些非常低效的SQL,所以我不會推薦它。

0

如果您從純關係數據庫中檢索數據,則應該查看是否可以在單個查詢中檢索多個結果集。或者,如果您可以獲取不合格的結果,請在具有相應形狀的樹結構中檢索這些結果。

如果您與數據庫的連接對此不夠智能,則可以使用結果的通用連接,然後返回以某種形式標記的聯合查詢,以確定哪個結果來自哪個表。

您沒有說明減少往返的原因,但是您也可以使用類似存儲過程的方式在服務器上收集所需數據,然後將其返回到一個結果集中。

1

您可以使用Future Query擴展方法。這link可以根據需要來完成這項工作。

相關問題