我正在努力將現有的Ruby on Rails應用程序的一部分移植到.NET MVC 4和實體框架5(不要問),並且需要一些幫助來複制某些ORM功能,特別是Rails的多態關聯。等效於實體框架中的Rails多態關聯
我寧願不改變現有的數據庫結構。我給的我在做什麼一個例子 - 這裏的數據庫是什麼樣子:
CREATE TABLE tags (
id integer PRIMARY KEY,
name nvarchar(128) NOT NULL,
UNIQUE (name)
);
CREATE TABLE taggings (
id integer PRIMARY KEY,
tag_id integer REFERENCES tags(id) ON DELETE CASCADE,
taggable_id integer,
taggable_type nvarchar(255),
);
CREATE TABLE stories (
id integer PRIMARY KEY,
name nvarchar(128) NOT NULL
[more stuff]
);
CREATE TABLE assets (
id integer PRIMARY KEY,
name nvarchar(128) NOT NULL
[more stuff]
);
該模型的Tagging在此表看起來與其他幾人,諸如故事,資產等相關記錄如:
INSERT INTO taggings values (1, 1, 1234, 'Story');
INSERT INTO taggings values (2, 343, 69, 'Asset');
INSERT INTO taggings values (3, 200, 42, 'Asset');
因此,域中的資產模型和故事模型都與標籤具有一對多關係。我想在我的C#Story和Asset類中建模(Fluent API)這種關係。
有沒有一種方法來指定這個,或許在定義關係時使用附加條件(Tagging.taggable_type ='Story')?我不需要導航到其他方向(從標記到故事/資產)。
相關文檔:[Rails Guides](http://guides.rubyonrails.org/association_basics.html#polymorphic-associations) – Pete