[英]Entity framework model first foregin key column
我有3個實體( Projects
/ Products
/ Negotiations
)。
談判實體具有名為ReferencedId
和TypeId
的列,該ReferencedId
是Projects和Products表的外鍵。
TypeId
已定義ReferencedId
屬於哪個實體。
但是當我調用context.SaveChanges();
在“ Negotiation
實體中插入新消息,已引發此錯誤:
Server Error in '/' Application.
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_ProjectNegotiation". The conflict occurred in database "MyMVCApp", table "dbo.Projects", column 'Id'.
The statement has been terminated.
編輯:這是我的模型:
我該怎么做才能將1列用作協商實體的外鍵,並避免為此使用2列。
謝謝。
正如您所說-這是一個概念性問題。.您正在濫用前鍵。 不要這樣!
使談判抽象化,將產品談判和項目談判創建為談判的子類,並在那里定義導航屬性
您不能將單個列作為指向兩個表的(正式)外鍵約束。
您可以使用Table-per-Type或Table-per-hierarchy映射的某種變體來完成此操作( 此處是介紹性文章 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.