2010-06-03 1 views
1

J'ai créé un modèle Entity Framework 4.0 très simple utilisant VS2010 Professional. Ignorez l'entité Nationalité qui est une simple relation un-à-plusieurs.Lorsque je génère le DDL à partir d'un modèle Entity Framework 4.0, puis-je modifier la façon dont il nomme les colonnes dans une relation plusieurs à plusieurs?

J'ai une entité Entry qui a une relation plusieurs-à-plusieurs avec l'entité Team car une entrée peut avoir plusieurs équipes. Ceci est représenté ci-dessous:

Entity model example http://img709.imageshack.us/img709/5785/ef4mfexample.png

Cela génère alors la LDD suivante:

...Some DDL... 

-- -------------------------------------------------- 
-- Creating all tables 
-- -------------------------------------------------- 

-- Creating table 'Nationalities' 
CREATE TABLE [dbo].[Nationalities] (
    [Id] int IDENTITY(1,1) NOT NULL 
); 
GO 

-- Creating table 'Entries' 
CREATE TABLE [dbo].[Entries] (
    [Id] int IDENTITY(1,1) NOT NULL, 
    [NationalityId] int NOT NULL 
); 
GO 

-- Creating table 'Teams' 
CREATE TABLE [dbo].[Teams] (
    [Id] int IDENTITY(1,1) NOT NULL 
); 
GO 

-- Creating table 'EntryTeam' 
CREATE TABLE [dbo].[EntryTeam] (
    [Entries_Id] int NOT NULL, 
    [Teams_Id] int NOT NULL 
); 
GO 

...More DDL... 

Comme vous pouvez le voir, je l'utilise TitleCaseId pour mes propriétés d'entité, mais l'entité générée automatiquement qui agit comme une jointure table utilise TitleCase_Id. Plutôt que de causer des problèmes lorsque d'autres viennent voir le code, y a-t-il un moyen facile de changer cela de sorte que lorsque le code est généré, il peut aimer mes autres entités à la fois dans l'EDM et le DDL?

Répondre

4

Vous remarquerez sur la fenêtre de propriétés lorsque sur le modèle Entity Framework il y a un groupe de propriétés appelé "Database Script Generation".

Ce qui se passe est que lorsque vous générez les scripts du flux de travail « TablePerTypeStrategy.xaml » est exécuté et utilise un modèle T4 « SSDLToSQL10.tt » pour transformer votre modèle d'entité dans des scripts DDL en utilisant les conventions prédéfinies MS.

Le modèle T4 est situé dans C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Extensions \ Outils Microsoft \ Entity Framework \ DBGEN \

Vous pouvez modifier le fichier SSDLToSQL10.tt en utilisant votre préféré convention, je le sauvegarderais en premier ou en alternance créer une copie et éditer la copie, le nouveau fichier apparaîtra dans le "DDL Generation Template" déroulant dans Visual Studio.

+0

Pouvez-vous expliquer comment modifier ce fichier afin de nommer des entités personnalisées? – PedroC88

Questions connexes