我有一個具有以下結構Unflatten數據庫記錄到主/詳細信息的EF 5碼首先
CREATE TABLE [dbo].[MASTER_PROJECT](
[DATA_ID] [bigint] IDENTITY(1,1) NOT NULL,
......
[GENRE_DATA_ID] [bigint] NULL,
[ADDITIONAL_GENRE_DATA_ID] [bigint] NULL,
[ADDITIONAL_GENRE_2_DATA_ID] [bigint] NULL)
我想有以下類映射出使用EF 5遺留數據庫表(代碼首先)
public class Project {
public long Id {get;set;}
public ICollection<Genre> Genres {get;set;}
}
public class Genre {
public long Id {get;set;}
// other stuff
}
起初我試圖使流派這樣
HasOptional(t => t.Genres[0]).WithOptionalDependent().Map(m => m.MapKey("GENRE_DATA_ID"));
HasOptional(t => t.Genres[1]).WithOptionalDependent().Map(m => m.MapKey("ADDITIONAL_GENRE_DATA_ID"));
HasOptional(t => t.Genres[2]).WithOptionalDependent().Map(m => m.MapKey("ADDITIONAL_GENRE_2_DATA_ID"));
但這產生的陣列和映射這是一個錯誤,那t.Genres [0]不是一個有效的屬性。 (這是有道理的)
任何想法,我會如何去做這件事? 謝謝!
謝謝你的回答,但我還不確定我明白你在做什麼。 你是說將一個屬性GenreDataIDs添加到主Project類?那麼我將如何將這些DataID映射到關聯的映射體裁類? – NYCChris 2013-03-26 21:16:38
而不是int列表?你可以返回列表;同樣的原則,您必須自己構建ICollection。我會編輯答案 –
Moho
2013-03-27 00:54:39
好吧,我明白你的意思了。所以Project將有4個公共屬性,Genre1,Genre2,Genre3和IList流派。那正是我想要避免的,但我想這是沒有辦法的。 謝謝你的幫助! –
NYCChris
2013-03-27 13:58:47