Salve a tutti.
In un mio progetto ho definito che tutte le entità hanno una proprietà "ID" di tipo identity.
Pertanto, quando devo fare una relazione N a M, nella creazione del modelbuilder devo mettere sempre lo stesso codice.
Pertanto mi sono creato uno snippet di codice come questo:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>EntityFramework ModelBuilder relazione N a M</Title>
<Shortcut>mbnm</Shortcut>
<Description>Mappa una relazione N a M nel ModelBuilder</Description>
<Author>Me</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>classe</ID>
<ToolTip>Nome della classe</ToolTip>
<Default>classe</Default>
</Literal>
<Literal>
<ID>da_proprieta</ID>
<ToolTip>Proprieta</ToolTip>
<Default>prop_da</Default>
</Literal>
<Literal>
<ID>a_proprieta</ID>
<ToolTip>Proprieta inversa</ToolTip>
<Default>a_proprieta</Default>
</Literal>
<Literal>
<ID>tab_map</ID>
<ToolTip>Tabella di Mapping</ToolTip>
<Default>_tableMap</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[// Relazione N a M
modelBuilder.Entity<$classe$>()
.HasMany(x => x.$da_proprieta$)
.WithMany(y => y.$a_proprieta$)
.Map(m =>
{
m.ToTable("$tab_map$");
m.MapLeftKey("ID_$da_proprieta$_FK");
m.MapRightKey("ID_$a_proprieta$_FK");
}
);]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
In questo modo, quando su Visual Studio scrivo "mbnm" (che poi sta per model builder n m), viene scritto tutto il codice, mi chiede le info necessarie e fa tutto il mapping per conto suo.
Ho solo un problema: vorrei che il nome delle colonne del db (MapLeftKey e MapRightKey) venissero tutte in maiuscolo. Solo che le proprietà nel mio modello sono solo con la prima lettera in maiuscolo.
Come posso fare?