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] .
Vi sono due possibili Soluzioni:
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.
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à.
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