Passa ai contenuti principali

SqlServer di Aruba - Entity Framework 4.0 - Problema dello Schema

Lo schema in MsSql è un elemento intermedio fra il database e le tabelle, lo schema predefinito è dbo e compare nel nome tabella come [dbo].[NomeTabella] . 

In fase di generazione di un modello .edmx Entity Framework permette di impostare lo schema tramite la proprietà "Database Schema Name" dell'edmx. 

Questo valore però non sarà modificabile a Runtime perchè cablato nei metadati.

Il servizio SqlServer di aruba purtroopo crea le tabelle in uno schema che ha lo stesso nome dell'utente (per esempio MSSql123). 

Quindi un edmx generato in locale a partire da tabelle definite nello schema dbo non fuzionerà.

Vi sono due possibili Soluzioni:
  • In locale definisco le tabelle di sviluppo nello stesso schema in cui saranno sul Sql di Aruba.
    CREATE SCHEMA  MSSql123
    GO
    CREATE TABLE [MSSql123].NomeTabella] ( ... ......);
  • Impongo che i metadati non vengano inseriti nella dll, ed edito a mano i tre file xml di metadati sostituendo dbo con lo schema in uso su aruba ogni volta che devo pubblicare il sito (come descritto qui  http://blogs.ugidotnet.org/BabbaBlog/archive/2009/03/22/entity-framework-su-aruba.aspx )

Commenti