2010-02-04 104 views
2

即時通訊我試圖掌握LINQ,據我瞭解它LINQ將您的DAL到您的數據庫,它反過來爲您創建一個類,爲您映射出您的數據庫結構,然後您可以執行使用該類的查詢..我需要爲我的數據庫每個表的類嗎?

  • 我嘗試這樣做,會回到我的LINQ查詢結果的功能..
    • 所有的例子我一直在閱讀似乎指向,如果我想我的查詢是一個定義的類型我要創建它的特殊類,並把它作爲列表...

我是否正確?請賜教

回答

2

默認情況下,LINQ to SQL設計將創建一個類數據庫中的每個表。創建的數據庫上下文對象將爲數據庫中的每個表定義。您可以對這些表定義執行Linq查詢並將結果存儲在生成的類中,您可以使查詢生成匿名類型。隨你便。

+0

「您可以對這些表定義執行Linq查詢,並將結果存儲在生成的類中 - >這是否意味着使用在我的數據庫上下文中自動生成的表結構定義的類? – Dennis 2010-02-04 14:04:48

+0

L2S生成的類不與數據上下文一起存儲。它們都存儲在一個.cs文件中。該文件的名稱是您的DBML +「.designer.cs」的名稱。 – 2010-02-04 14:37:22

6

「的LINQ」不是一個ORM技術,它僅僅是寫像網絡語言的內部報表查詢的方式。您還沒有說過您是使用Ling to SQL還是Linq to Entities,它們都是使用Linq將數據模式映射到表的ORM技術。

的LINQ to SQL將爲您提供每個表的直映射到一個類,並將處理大部分提升,以完成這件事。您的查詢可以返回這些類型,或者使用Linq表達式,可以將這些類型「投影」到您自己創建的其他類型。

如果您需要更大的靈活性,Entity Framework將允許您將單個表映射到多個實體,將多個表映射到單個實體等。爲此,您必須自行完成更多工作,因爲您在許多情況下必須手工修改映射。與Linq to SQL類似,查詢可以返回這些生成的類型,也可以在查詢中指定它們自己的類型。

+0

我試圖創建一個函數來運行linq查詢並返回結果.. - 我想要的是..;從表 「NDT_Equipment」 公開名單 GetALLRecords() { 使用(NDT_DB) { 返回(從在NDT_DB.NDTEquipment選擇)返回的所有記錄 }} - 其中:NDT_DB - 數據庫上下文(自動生成)的類實例 :NDT_Equipment - 數據庫上下文類的內部部分類 - 我不能編譯這個..即時得到「你缺少強制「error – Dennis 2010-02-04 14:16:15

+0

@丹尼斯,請編輯您的帖子以添加此內容,以及您使用的還有哪些ORM? – 2010-02-04 14:17:53

+0

- 遺憾的帖子..我不熟悉如何添加與段落 – Dennis 2010-02-04 14:18:16

1

根據您的問題的標題,我會說不。可能有實例表示您不需要映射到Linq2SQL的表。想到的一個直接例子是,如果您使用ASP.NET Membership API,則不需要將這些表/ sprocs /函數拖放到設計器中,因爲該數據由API公開。

如果您使用的是設計師(DBML文件),你可以挑選哪些數據庫對象帶入您的解決方案。這是我完成它的方式,只引入我實際需要訪問的那些數據庫對象。另外一個例子,我曾在一家商店工作過,他們強烈希望通過存儲過程完成所有數據庫訪問。因此,在那種情況下,我使用了很多[StoredProcedureName]結果,我依次將結果映射到其他對象,而不是實際的表本身,這些表本身甚至在解決方案中都沒有定義。

相關問題