簡體   English   中英

如何使用實體框架更改外鍵關聯?

[英]How do I change a foreign key association using Entity Framework?

使用ASP.NET實體框架,如何更改兩個實體之間的外鍵關聯?

這是一個示例方案:

---------------     ----------------
|  Customer   |     |     Class    |
---------------     ----------------
| ID          |     | Desctription |
| Name        |     | Name         |
| ClassID (FK)|-----| ID           |
---------------     ----------------

客戶以D類客戶開始。 客戶花的錢越多,分類將變為C,B或A。如何使用EF做到這一點?

我已經在EF和我的解決方案之間建立了立面(因為某些操作需要EF之外的操作),所以我嘗試通過這種方式進行操作:

customer.Context.Class.ID = facade.SelectClass(ClassID)

那將返回一個業務類的類,但是customer.Context.Class.ID需要一個數據層對象,盡管我可以做到這一點,但這意味着我脫離了設置層設計。

有沒有辦法解決?

抱歉,問題有點混亂或模糊。

首先,讓我們在沒有所有額外圖層的情況下回答問題。 在EF中,您可以執行以下操作:

var customer = Context.Customers.Where(c.Id == id).First();
customer.Class = Context.Classes.Where(c.Id == classId).First();

現在,如何將其映射到業務對象? 我無法在看不到代碼的情況下對其進行調試,但是您需要在外觀中公開一些將業務類型映射到數據層類型的功能。 我使用表達式來執行此操作,但是有很多解決方案。

暫無
暫無

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

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