簡體   English   中英

在解決方案中的多個項目之間共享LINQ-to-SQL類/模型

[英]Sharing LINQ-to-SQL classes/models between multiple projects in a solution

我現在在Visual Studio解決方案中有多個C#項目,它們都將使用相同的SQL Server數據庫。

在項目之間共享LINQ-to-SQL類的正確方法是什么?

我正在考慮將dmbl文件復制到每個項目中,但我認為這可能過於冗余。 有沒有更好的方法來解決這個問題?

我想你需要在項目之間共享數據庫訪問代碼而不是linq-2-sql類。

構建數據訪問庫( DAL ),它通過linq-2-sql類實現數據庫上的操作 ,而不是公開類。

我建議使用Repository Pattern

從您想要的項目中引用DAL庫。

您可以:將其構建為類庫並包含它。 這只是一個類,對吧。

如果它們在同一個解決方案中,您可以在需要訪問Linq類的項目中添加對Linq項目的引用。 或者我誤解了你的問題? 您可以通過右鍵單擊需要訪問Linq類的項目的“References”文件夾來執行此操作,選擇“Projects”選項卡並選擇Linq項目。

如果您正在訪問嚴格的數據訪問,請遵循Andrew Florko的建議並構建數據訪問層以獲取所需的數據。

您需要做的是創建一個包含DBML類的類庫。 然后將其添加為對其他項目的引用。 確保除了與​​數據庫相關的代碼之外,該類庫中沒有任何內容,因此可以很容易地添加到將來的項目中。

然后做Andrew Florko建議的內容並閱讀數據訪問模式。 存儲庫很好,雖然我喜歡DAO

我不僅將Model類,而且將整個數據訪問層(DAL)分離到您從應用程序的其他部分引用的單獨程序集中。

DAL將封裝它與數據庫交互的詳細信息(在本例中使用LINQ to SQL),並將它們隱藏在對應用程序有意義的定義良好的接口之后。

此外,由於從LINQ to SQL DBML文件生成的類只是普通的舊CLR對象(PO​​CO),因此我沒有看到將它們作為DAL接口的一部分直接公開的問題。

暫無
暫無

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

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