![](/img/trans.png)
[英]Entity framework - How to share some tables between multiple applications
[英]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.