簡體   English   中英

如何在實體框架中的多個數據庫之間共享類?

[英]How to share classes between multiple databases in Entity Framework?

我們有兩個不同的應用程序(項目 1、項目 2),它們將出於不同目的使用兩個不同的數據庫,但是 DB1 中的一些表/類對於 DB2 使用是有意義的。 我們使用代碼優先的實體框架來創建這兩個數據庫。 當前的方法是在 DB2 中僅具有類似的類,並讓項目 1 將 DB1 對象轉換為 DB2 對象,然后再將數據提供給項目 2。我想知道是否可以進行設計更改以消除轉換和重復類,只是讓兩個項目都使用公共類。

我想知道是否有辦法將我們想要在項目之間共享的 3 個或 4 個類放入某個庫中,該庫可以在兩個項目中引用並包含在它們的數據庫中?

當前的設計如下所示:

DB1 project:  
User   
Task  
many different tables  

DB2 project:  
User   
Task  
many different tables 

雖然我在想象這樣的事情:

Class Library project:  
User  
Task

DB1 project:  
Reference to Class Library      
many different tables  

DB2 project:  
Reference to Class Library  
many different tables 

有沒有辦法讓這兩個實體框架數據庫一起工作?

EF 只需要每個 C#project 一個 DbContext,這是為了解決遷移等問題。您的應用程序中可以有多個項目。

不建議在 Context 之間共享類,尤其是當它們屬於不同的數據庫時。 通過在您的代碼中擁有一個實體,您應該始終能夠知道它屬於哪個數據庫。

但是您還提到“不同的應用程序”,這是另一個場景,例如擁有同一個數據庫的前端和后端應用程序? 他們可以與實體類共享相同的 C# 項目。 (但這不是一個應用程序中的多個數據庫,而是一個數據庫上的多個應用程序)。

暫無
暫無

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

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