Connection String usada por uma Class Library



Documentos relacionados
Criação de uma aplicação Web ASP.NET MVC usando Code First

Aplicação MVC com Class Library

Criação de uma aplicação Web ASP.NET MVC 4

LAB 18: ASP.NET e Web Services

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Criação de um Web Services em.net

Criar uma aplicação JPA2 com EclipseLink e H2

Consulta de endereço através do Cep

A interface do Microsoft Visual Studio 2005

Criação de um Web Services em.net

Resumo Aplicação MVC Contoso University

Trabalho Prático Nº1 Introdução ao C#.NET

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Textos Legais. TL Internet. Legislativa. Manual de Implantação

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível.

Forms Authentication em ASP.NET

Universidade da Beira Interior. Sistemas Distribuídos /2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services

1 Code::Blocks Criação de projetos

Guia e Utilização do Visual Studio 6.0

Criando uma aplicação Web em C# usando o NHibernate

Disciplina: INF Programação I. 1 a aula prática Introdução ao ambiente do Microsoft Visual Studio 2010

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Guião de Introdução ao Eclipse IDE Índice

Programação de Computadores I. Conhecendo a IDE Code::Blocks

LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA CAPÍTULO 1 APRESENTANDO O C#

NetBeans. Conhecendo um pouco da IDE

Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile)

Guia rápido de uso da interface beta do NFS-e Easy para operação com Sistemas WebISS

SQL Server 2008 Integration Services

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Laboratório de Programação I

Criar um Aplicativo de Realidade Aumentada

Conhecendo o Visual FoxPro 8.0 Parte 1

ASP.NET Gerando relatórios com o ReportViewer

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

O Primeiro Programa em Visual Studio.net

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API

Criação de uma DAL com Typed DataSets

LAB12: Componentes ASP.NET

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

INSTALAR O SQL SERVER NO SERVIDOR. (É o caso da Zervan, que existe o servidor da Fernanda e queremos instalar um outro na máquina de Lilian)

MANUAL DE CONFIGURAÇÃO -ZIMBRA- Ajuda na configuração e utilização do cliente de correio eletrónico

Aula 06 Usando controles em ASP.NET

Persistência de Classes em Tabelas de Banco de Dados

Instalação BibliotecaRM/Procedimento (título ilustrativo, não é preciso colocar)

Módulo 3936 ASP.NET. Financiado pelo FSE

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Nota de Aula: Utilização da IDE Code::Blocks

Instalando e configurando o IIS no Windows Server 2012 Depois do Windows server 2012 instalado, devemos adicionar IP estático a ele, vamos abrir o

- O MySQL para além da sua utilização em modo linha de comandos, também pode ser utilizado através de ferramentas gráficas.

Repeater no GASweb. Regiões

Formador: Paulo Ramos IGRI13: Rui Bárcia Nº15. Windows 2008 Server. Módulo 16. Instalação e configuração

Software Adobe DreamWeaver. Requisitos para criar aplicações Web

Acesso a Dados: com Wizard (sem escrever código), e Programaticamente

ASP.NET MVC. View Engine: linguagem usada para gerar código HTML. Duas opções: Razor View Engine ou ASPX View Engine. Selecionar Razor.

Aplicação ASP.NET MVC Cliente de Aplicação Web API (com Class Library)

NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos aplicar os temas e os skins.

ESUS SAMU V INSTRUÇÕES PARA INSTALAÇÃO

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Aplicação ASP.NET MVC Cliente de Aplicação Web API

Editor Eclipse para Programas F

Configurar o Furbot no Eclipse

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/ Valores

A interface IDataSource retorna dados em formato tabular e disponibiliza apenas dois métodos: GetView e GetViewNames. O primeiro,

Com criar relatório no Report Services do Microsoft SQL Server 2008 R2 integrado com o

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Orientação a Objetos Programação em C++

Login. Criar um novo website File > New > WebSite Framework 4.5 Visual C# ASP.NET Empty Web Site Nome do projeto: WebLogin

Introdução ao IDE Netbeans (Programação Java)

Manual de Instalação: Agente do OCS Inventory NG

ZEND F r a m e w o r k

Acesso a Dados com Wizard (sem escrever código) e Programaticamente

LEITOR DE CARTÕES (Cédulas Profissionais)

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

Trabalhando com XML RENATO CORREIA DE MATOS

PROGRAMANDO EM C# ORIENTADO A OBJETOS

ZSRest e ZSPos Multiposto

Tarefa Orientada 5 Aplic. Manutenção de Facturas de Clientes

Acesso a banco de dados

INSTALANDO SQL SERVER 2008

Professora Martha Spalenza Professora de Informática da Faetec

Construindo Aplicações com ASP.NET MVC 2.0 Aula 01 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Frameworks - Grails. Aécio Costa

Manual do Usuário. Tag List. Tag List Generator. smar FIRST IN FIELDBUS JUL / 02. Tag-List VERSÃO 1.0 TAGLSTC3MP

ASP.NET Web Services. José Antônio da Cunha IFRN

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Computação Orientada aos Serviços. WF (parte 1) Semestre de Inverno 12/13

Transcrição:

Connection String usada por uma Class Library Vamos considerar uma Class Library com o modelo de dados e com acesso à base de dados através do Entity Framework. Aonde deve ser colocada a connection string para acesso à base de dados? A connectio string pode conter um path para a base de dados relativo ou absoluto. Uma Class Library nunca funciona sozinha. Vamos considerar que a usamos a partir de uma Web Application. O que executamos é a aplicação web, e é o ficheiro de configuração desta aplicação que é usado. A connection string deve estar no ficheiro web.config do projecto da aplicação web. A Class Library (que referenciamos do projecto aplicação web) deve ler a connection string do ficheiro web.config da aplicação web. Em geral, uma class library pode ser usada por diferentes programas, cada um usando diferentes configurações. Isto implica que a configuração deve residir na aplicação executável, e não na class library. Um projecto class library pode ter um ficheiro de configuração app.config. Contudo, as configurações contidas em app.config não serão usadas pela aplicação executável que invoca a class library. Vamos criar os seguintes programas: 1) Uma solução para conter vários projectos. 2) Uma Class Library com o modelo de dados e acesso à base de dados através do Entity Framework. 3) Uma Aplicação Web, MVC5, com uma Referência para a Class Library. 4) Uma Aplicação Windows de Consola com uma Referência para a Class Library. 5) Um Web Service WCF com uma Referência para a Class Library. 6) Uma Aplicação Web, Web Forms, cliente do Web Service (c/ Serv. Refer. para WS). 7) Uma Aplicação Windows de Consola cliente do Web Service (c/ Serv. Refer. para WS). 8) Finalmente uma Aplicação PHP cliente do Web Service. Em 2) não há necessidade de connection string. Em 3) a connection string deve estar no ficheiro Web.config da Aplicação Web. Em 4) a connection string deve estar no ficheiro App.config da Aplicação Windows Consola. Em 5) a connection string deve estar no ficheiro Web.config do Serviço Web. Em 6) não há necessidade de connection string. Em 7) não há necessidade de connection string. 1. Criar a Solução Visual Studio 2013 > File > New Project > Other Project Types > Visual Studio Solutions Name: ConnectionStringClassLibrary

2. Criar a Class Library Class Library ligada à base de dados através do Entity Framework Bt. dir. do rato em cima do nome da solução: Add > New Project > Visual C# Windows Desktop > Class Library Name: ClassLibraryFilmes OK Mudar o nome de Class1.cs para Filme.cs Acrescentar o seguinte código: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassLibraryFilmes public class Filme public int FilmeId get; set; public string Titulo get; set; 2.1 Adicionar Entity Framework à Class Library Bt. dir. do rato em cima do nome da class library: ClassLibraryFilmes > Manage Nuget Packages > (Online) > Entity Framework > Install Downloading Entity Framework Accept Adicionado Entity framework à ClassLibraryFilmes Close Aparece o ficheiro de configuração App.config e também packages.config. 2.2 Criar uma pasta DAL, e a classe FilmesDbContext ClassLibraryFilmes > botão direito do rato: Add > New Folder > DAL DAL > botão direito do rato: Add > Class > Name: FilmesDbContext.cs Add A classe FilmesDbContext derivada de DbContext, representa o contexto da base de dados, e trata de retribuir (select), guardar (insert), atualizar (update), e apagar (delete) instâncias da classe Filme na base de dados. Acrescentar using System.Data.Entity; para referenciar DbContext e DbSet. using System; using System.Collections.Generic; using System.Data.Entity;

using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassLibraryFilmes.DAL public class FilmesDbContext : DbContext public FilmesDbContext() : base("defaultconnection") public DbSet<Filme> Filmes get; set; 2.3 Compilar para criar a dll Bt. dir. do rato em cima do nome da class library: ClassLibraryFilmes > Build Cria a dll ConnectionStringClassLibrary/ClassLibraryFilmes/bin/ClassLibraryFilmes.dll 3. Criar uma Aplicação Web MVC5 Esta aplicação Web usa uma referência para a Class Library. Bt. dir. do rato em cima do nome da solução: Add > New Project > Visual C# Web > Asp.Net Web Application Name: WebApplication1 OK Template: MVC OK 3.1 Adicionar referência para a Class Library Bt. dir. do rato em cima do nome do projecto da aplicação web: WebApplication1 > Add > Reference > Solution > ClassLibraryFilmes Marcar ClassLibraryFilmes OK Em Solution Explorer abrir o item References e verificar que existe ClassLibraryFilmes. 3.2 Build da Aplicação Bt. dir. do rato em cima do nome do projecto da aplicação web: Build Necessário para em seguida o scaffolding poder usar as classes do modelo e do contexto de dados definidas na Class Library. 3.3 Scaffolding para criar Controladores e Vistas Controllers > botão direito do rato: Add > Controller > Add Scaffold: MVC 5 Controller with views, using Entity Framework > Add

Model class: Data context class: Controller name: Filme (ClassLibraryFilmes) FilmesDbContext (ClassLibraryFilmes.DAL) FilmesController Add 3.4 Executar a aplicação WebApplication1 > Set as StartUp Project Debug > Start Debugging Na barra de endereços do browser acrescentar /Filmes localhost:xxxx/filmes Criar um filme Título: Em Parte Incerta Inspecionar a base de dados: Em Solution Explorer, clicar em Show All Files, e inspecionar a base de dados debaixo de App_Data da aplicação WebApplication1. Expandir Tables para ver as tabelas que foram criadas. Na tabela Filmes > Show Table Data 3.5 Saber a Connection String que o Entity Framework está a usar Para saber qual a connection string que, em tempo de execução, o Entity Framework está a usar podemos adicionar o código seguinte ao construtor por omissão da subclasse de DbContext criada: namespace ClassLibraryFilmes.DAL public class FilmesDbContext : DbContext public FilmesDbContext() : base("defaultconnection") string s = Database.Connection.ConnectionString; public DbSet<Filme> Filmes get; set; Colocando um break point neste construtor e executando a aplicação em modo debug conseguimos observar a connection string. Usar F11 após a execução parar no break point. Nesta aplicação, valor da string s = Data Source=(LocalDb)\v11.0;AttachDbFilename= DataDirectory \aspnet WebApplication1 aaaammddhhmmss.mdf;initial Catalog=aspnet WebApplication1 aaaammddhhmmss;integrated Security=True Verificamos que é a mesma que está declarada no ficheiro Web.config da aplicação web WebApplication1: <?xml version="1.0" encoding="utf 8"?> <configuration> <configsections> </configsections> <connectionstrings>

<add name="defaultconnection" connectionstring="data Source=(LocalDb)\v11.0; AttachDbFilename= DataDirectory \aspnet WebApplication1 aaaammddhhmmss.mdf; Initial Catalog=aspnet WebApplication1 aaaammddhhmmss; Integrated Security=True" providername="system.data.sqlclient" /> </connectionstrings> <appsettings> </appsettings> A connection string é lida do ficheiro Web.config da Aplicação Web. 3.6 Alterar a Connection String usada pela aplicação Acrescentar o código seguinte ao ficheiro Web.config da aplicação web WebApplication1: <connectionstrings> <add name="defaultconnection" connectionstring="data Source= /> <add name="gandalfconnection" connectionstring="data Source=gandalf.dei.isep.ipp.pt\sqlexpress;Initial Catalog=NomeBD;User ID=User1;Password=****" providername="system.data.sqlclient" /> </connectionstrings> Alterar o nome da connection string no ficheiro FilmesDbContext.cs da class library: namespace ClassLibraryFilmes.DAL public class FilmesDbContext : DbContext // public FilmesDbContext() : base("defaultconnection") public FilmesDbContext() : base("gandalfconnection") string s = Database.Connection.ConnectionString; public DbSet<Filme> Filmes get; set; Em execução, valor da string s = Data Source=gandalf.dei.isep.ipp.pt\sqlexpress;Initial Catalog=NomeBD;User ID=User1;Password=**** 4. Criar uma Windows Console Application Esta aplicação Windows Console usa uma referência para a Class Library. Bt. dir. do rato em cima do nome da solução: Add > New Project > Visual C# Windows Desktop > Console Application Name: ConsoleApplication1 OK

4.1 Adicionar referência para a Class Library Bt. dir. do rato em cima do nome do projecto da aplicação windows: ConsoleApplication1> Add > Reference > Solution > ClassLibraryFilmes Marcar ClassLibraryFilmes OK Em Solution Explorer abrir o item References e verificar que existe ClassLibraryFilmes. 4.2 Acrescentar código Ficheiro Program.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ClassLibraryFilmes.DAL; namespace ConsoleApplication1 class Program static void Main(string[] args) FilmesDbContext db = new FilmesDbContext(); var lista = db.filmes.tolist(); foreach (var item in lista) Console.WriteLine(item.Titulo); 4.3 Build da Aplicação Bt. dir. do rato em cima do nome do projecto da aplicação Windows: Build Dá erro, apresentando a seguinte mensagem: The type 'System.Data.Entity.DbContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. 4.4 Adicionar Entity Framework à Aplicação Windows Verificar o ficheiro de configuração App.config: <?xml version="1.0" encoding="utf 8"?> <configuration> <startup> <supportedruntime version="v4.0" sku=".netframework,version=v4.5" /> </startup> </configuration> Bt. dir. do rato em cima do nome da aplicação windows: ConsoleApplication1 > Manage Nuget Packages > (Online) > Entity Framework > Install

Adicionado Entity Framework a ConsoleApplication1. Close. Verificar agora o ficheiro de configuração App.config: <?xml version="1.0" encoding="utf 8"?> <configuration> <configsections> <! For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?linkid=237468 > <section name="entityframework" type="system.data.entity.internal.configfile.entityframeworksection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirepermission="false" /> </configsections> <startup> <supportedruntime version="v4.0" sku=".netframework,version=v4.5" /> </startup> <entityframework> <defaultconnectionfactory type="system.data.entity.infrastructure.sqlconnectionfactory, EntityFramework" /> <providers> <provider invariantname="system.data.sqlclient" type="system.data.entity.sqlserver.sqlproviderservices, EntityFramework.SqlServer" /> </providers> </entityframework> </configuration> 4.5 Executar a aplicação ConsoleApplication1 > Set as StartUp Project Debug > Start Debugging A aplicação não retorna nada. Verificar a connection string que esta aplicação Windows está a usar quando executa, colocando um break point no construtor da class FilmesDbContext. Data Source=.\SQLEXPRESS;Initial Catalog=GandalfConnection;Integrated Security=True;MultipleActiveResultSets=True 4.6 Alterar a Connection String usada pela aplicação Acrescentar o código seguinte ao ficheiro App.config da aplicação web ConsoleApplication1: <?xml version="1.0" encoding="utf 8"?> <configuration> <configsections> </configsections> <connectionstrings> <add name="gandalfconnection" connectionstring="data Source=gandalf.dei.isep.ipp.pt\sqlexpress;Initial Catalog=NomeBD;User ID=User1;Password=****" providername="system.data.sqlclient" /> </connectionstrings> <startup>

4.7 Executar a aplicação Debug > Start Debugging A aplicação não retorna os filmes existentes na tabela Filmes da base de dados. 5. Criar um Web Service Este Web Service usa uma referência para a Class Library. Bt. dir. do rato em cima do nome da solução: Add > New Project > Visual C# WCF Service Application Name: WebServiceFilmes OK 5.1 Mudar o nome do serviço para ServiceFilmes IService1.cs > Rename > IServiceFilmes Enter Rename in this project all references to the code element Iservice1.cs? Sim Service1.svc > Rename > ServiceFilmes.svc Enter 5.2 Adicionar referência para a Class Library Bt. dir. do rato em cima do nome do projecto do web service: WebServiceFilmes > Add > Reference > Solution > Marcar ClassLibraryFilmes OK 5.3 Adicionar Entity Framework ao Web Service Bt. dir. do rato em cima do nome do web service: WebServiceFilmes > Manage Nuget Packages > (Online) > Entity Framework > Install Adicionado Entity Framework a WebServiceFilmes. Close. 5.4 Alterar a Connection String usada pela aplicação Acrescentar o código seguinte ao ficheiro Web.config do web service: <?xml version="1.0" encoding="utf 8"?> <configuration> <configsections> </configsections> <connectionstrings> <add name="gandalfconnection" connectionstring="data Source=gandalf.dei.isep.ipp.pt\sqlexpress;Initial Catalog=NomeBD;User ID=User1;Password=****" providername="system.data.sqlclient" />

</connectionstrings> <appsettings> 5.5 Criar a interface e o método do Serviço Em IServiceFilmes.cs: [ServiceContract] public interface IServiceFilmes [OperationContract] void DoWork(); [OperationContract] IList<Filme> getfilmes(); Acrescentar using ClassLibraryFilmes; Em ServiceFilmes.svc.cs: public class ServiceFilmes : IServiceFilmes public void DoWork() public IList<Filme> getfilmes() FilmesDbContext db = new FilmesDbContext(); return db.filmes.tolist(); Acrescentar using ClassLibraryFilmes; using ClassLibraryFilmes.DAL; 5.6 Executar o Serviço ServiceFilmes.svc > View in Browser 6. Criar nova Aplicação Web para testar o Web Service Esta Web Application usa uma Service Reference para o Web Service. Bt. dir. do rato em cima do nome da solução: Add > New Project > Visual C# Web > Asp.Net Web Application Name: WebApplication2 OK Select a Template: Web Forms OK

6.1 Adicionar Service Reference para o Web Service Bt. dir. do rato em cima do nome do projecto da aplicação web: WebApplication2 > Add > Service Reference > Discover > http://localhost:47664/servicefilmes.svc Ok Namespace: ServiceReference1 => ServiceReferenceFilmes (WebApplication2. ServiceReferenceFilmes. ServiceFilmesClient) 6.2 Criar página com lista de filmes WebApplication2 > Add > New Item > Web Form Name: Filmes.aspx Colocar uma GridView na página Filmes.aspx Em Filmes.aspx.cs acrescentar o código: protected void Page_Load(object sender, EventArgs e) ServiceReferenceFilmes.ServiceFilmesClient proxy = new ServiceReferenceFilmes.ServiceFilmesClient(); var lista = proxy.getfilmes(); GridView1.DataSource = lista; GridView1.DataBind(); 6.3 Executar a aplicação Default.aspx > View in browser 7. Criar nova Windows Console Application para testar o Web Service Esta Console Application usa uma Service Reference para o Web Service. Bt. dir. do rato em cima do nome da solução: Add > New Project > Visual C# Windows Desktop > Console Application Name: ConsoleApplication2 OK 7.1 Adicionar Service Reference para o Web Service Bt. dir. do rato em cima do nome do projecto da aplicação windows: ConsoleApplication2> Add > Service Reference > Discover > http://localhost:47664/servicefilmes.svc Ok Namespace: ServiceReference1 => ServiceReferenceFilmes

(ConsoleApplication2. ServiceReferenceFilmes. ServiceFilmesClient) 7.2 Acrescentar código Ficheiro Program.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 class Program static void Main(string[] args) ServiceReferenceFilmes.ServiceFilmesClient proxy = new ServiceReferenceFilmes.ServiceFilmesClient(); var lista = proxy.getfilmes(); foreach (var item in lista) Console.WriteLine(item.Titulo); 7.3 Build da Aplicação Bt. dir. do rato em cima do nome do projecto da aplicação Windows: ConsoleApplication1 > Set as StartUp Project Debug > Start Debugging Build 8. Criar um cliente PHP a correr na máquina local para testar o Web Service PHP com soap extension activada. <?php $cliente= new SoapClient('http://localhost:5416/ServiceFilmes.svc?singleWsdl'); $resultado=$cliente->getfilmes(); print_r($resultado); echo "<p/>"; echo "<p/>"; for ($i=0; $i < count($resultado->getfilmesresult->filme); $i++) echo "<p/>filmeid: "; echo $resultado->getfilmesresult->filme[$i]->filmeid; echo "<br/>titulo: "; echo $resultado->getfilmesresult->filme[$i]->titulo;

?> stdclass Object ( [getfilmesresult] => stdclass Object ( [Filme] => Array ( [0] => stdclass Object ( [FilmeId] => 1 [Titulo] => O Juíz ) [1] => stdclass Object ( [FilmeId] => 1 [Titulo] => The Hunger Games ) ) ) ) FilmeId: 1 Titulo: O Juíz FilmeId: 2 Titulo: The Hunger Games NOTAS: 1. Uma alternativa para a colocação da Connection String seria colocá-la na Class Library alterando o construtor da subclasse de DbContext, para incluir a connection string para o gandalf. public class FilmesDbContext : DbContext public FilmesDbContext() : base(@"data Source=gandalf.dei.isep.ipp.pt\sqlexpress;Initial Catalog=NomeBD;User ID=User1;Password=****") string s = Database.Connection.ConnectionString; public DbSet<Filme> Filmes get; set; Deste modo não seria necessário colocar a connection string nos ficheiros App.config da Console Application nem nos ficheiros Web.config da Web Application ou do Web Service. 2. Na Class Library não foi necessário usar a classe ConfigurationManager para ler os dados do ficheiro web.config da aplicação que usa a Class library, como é referido em muitos artigos: Para a Class Library ler dados do ficheiro web.config adicionar ao projecto Class Library uma referência para o assembly System.Configuration. O namespace System.Configuration contém classes para retribuir connection strings de ficheiros de configuração em tempo de execução. Código a colocar na Class Library para ler a connection string: using System.Configuration; //You must set a reference to System.Configuration.dll in your project for the code to run public class FilmesDbContext : DbContext public FilmesDbContext() : base(configurationmanager.connectionstrings["gandalfconnection"].connectionstring)

string s = Database.Connection.ConnectionString; public DbSet<Filme> Filmes get; set; Uma Class Library só pode obter informação de configuração das aplicações que a usam. Internamente, o objecto ConfigurationManager cria uma classe estática que acede ao ficheiro de configuração através do objecto Application. 3. Nalgumas situações, a leitura a partir da class library não funciona, porque o projecto que consome a class library pode não ter ficheiro de configuração, em particular se pertence a uma plataforma diferente de.net. A leitura a partir da class library não é a situação ideal, porque o projecto que consome a class library pode não ter ficheiro de configuração, em particular se pertence a uma plataforma diferente de.net. Uma Class Library só pode obter informação de configuração das aplicações que a usam. Portanto se a aplicação que usa a class library não suporta um ficheiro de configuração, a class library não poderá aceder ao objecto ConfigurationManager. Internamente configuration manager cria uma classe estática que acede o ficheiro de configuração através do objecto Application. Numa aplicação não.net, o objecto Application não existe e portanto a informação de configuração não pode ser lida. Ainda as permissões para aceder o ficheiro de configuração no sistema de ficheiros são obtidas através do utilizador AppPool. Se este utilizador não existe não haverá utilizador através do qual seja possível aceder ao ficheiro de configuração no disco.