2015-07-19 53 views
1

我有一個數據集,它是一些獨立的對象(人,財產,工作),並且每個都與另一個對象(註釋)有關。具有複雜關係的實體框架

這種關係是由一個外鍵(主要是人,財產或工作)和一個只是一個varchar字段的類型組成的。

因此請注意基本上是這樣:

Id 
RecordId(foreign key) 
RecordType(person, propery, job as varchar) 
Note Detail 

面臨的問題是,每個主要對象使用的EntityFramework時包括這個人可能有工作筆記可能具有相同的密鑰左右。我可以稍後用一個RecordType =='XYZ'子句來處理這個問題,我覺得它很混亂。可悲的是,包括缺乏'包括在哪裏'的能力。

任何人都可以提出一種替代方法嗎?

回答

0

我有類似的問題。一種解決方案是有一個表每個層次關係。您最終得到一個Note(基類)和PersonNote,PropertyNote等。奇怪的是,EF需要爲每種類型的引用添加一個字段,因此除了現有的RecordId之外,您的表還需要RecordId_1,RecordId_2等字段。如果您沒有使用Code First生成數據庫,這有點不直觀。

我使用的另一個解決方案是在db中創建視圖,進行所需的過濾,將註釋和源記錄相結合,然後將EF映射到視圖。