Je travaille sur le portage d'une partie d'une application Ruby on Rails existante vers .NET MVC 4 et Entity Framework 5 (ne demandez pas), et j'ai besoin d'aide pour répliquer certaines fonctionnalités ORM , en particulier les associations polymorphes de Rails.Equivalent aux associations polymorphes de Rails dans Entity Framework
Je préférerais ne pas modifier les instructions de base de données existantes. Je vais vous donner un exemple de ce que je fais - voici ce que la base de données ressemble:
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]
);
Le modèle est associé à des marquages plusieurs autres, comme histoire, actifs, etc. enregistrements dans cette apparence de table comme:
INSERT INTO taggings values (1, 1, 1234, 'Story');
INSERT INTO taggings values (2, 343, 69, 'Asset');
INSERT INTO taggings values (3, 200, 42, 'Asset');
Ainsi, les deux modèles actifs et histoire dans le domaine ont un à plusieurs avec des marquages. Je voudrais modéliser (Fluent API) cette relation sur mes classes C# Story et Asset.
Existe-t-il un moyen de spécifier ceci, peut-être avec une condition supplémentaire (Tagging.taggable_type = 'Story') lors de la définition de la relation? Je n'ai pas besoin de naviguer dans l'autre direction (de Tagging à Story/Asset).
Documentation pertinente: [Rails Guides] (http://guides.rubyonrails.org/association_basics.html#polymorphic-associations) – Pete