Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A partir do .NET Framework versão 4, o Entity Framework dá suporte à DDL (linguagem de definição de dados). Isso permite que você crie ou exclua uma instância de banco de dados com base na cadeia de conexão e nos metadados do modelo de armazenamento (SSDL).
Os seguintes métodos no ObjectContext utilizam a string de conexão e o conteúdo SSDL para realizar o seguinte: criar ou excluir o banco de dados, verificar se o banco de dados existe e exibir o script DDL gerado.
Observação
A execução dos comandos DDL pressupõe permissões suficientes.
Os métodos listados anteriormente delegam a maior parte do trabalho para o provedor de dados ADO.NET subjacente. É responsabilidade do provedor garantir que a convenção de nomenclatura usada para gerar objetos de banco de dados seja consistente com as convenções usadas para consultas e atualizações.
O exemplo a seguir mostra como gerar o banco de dados com base no modelo existente. Ele também adiciona um novo objeto de entidade ao contexto do objeto e, em seguida, salva-o no banco de dados.
Procedimentos
Para definir um banco de dados com base no modelo existente
Crie um aplicativo de console.
Adicione um modelo existente ao seu aplicativo.
- Adicionar um modelo vazio chamado
SchoolModel. Para criar um modelo vazio, consulte o tópico Como criar um novo arquivo .edmx .
O arquivo SchoolModel.edmx é adicionado ao seu projeto.
Copie o conteúdo conceitual, de armazenamento e de mapeamento para o modelo de escola do tópico Modelo de Escola .
Abra o arquivo SchoolModel.edmx e cole o conteúdo dentro das
edmx:Runtimemarcas.
- Adicionar um modelo vazio chamado
Adicione o código a seguir à sua função principal. O código inicializa a cadeia de conexão para o servidor de banco de dados, exibe o script DDL, cria o banco de dados, adiciona uma nova entidade ao contexto e salva as alterações no banco de dados.
// Initialize the connection string. String connectionString = "..."; using (SchoolEntities context = new SchoolEntities(connectionString)) { try { if (context.DatabaseExists()) { // Make sure the database instance is closed. context.DeleteDatabase(); } // View the database creation script. Console.WriteLine(context.CreateDatabaseScript()); // Create the new database instance based on the storage (SSDL) section // of the .edmx file. context.CreateDatabase(); // The following code adds a new objects to the context // and saves the changes to the database. Department dpt = new Department { Name = "Engineering", Budget = 350000.00M, StartDate = DateTime.Now }; context.Departments.AddObject(dpt); // An entity has a temporary key // until it is saved to the database. Console.WriteLine(dpt.EntityKey.IsTemporary); context.SaveChanges(); // The object was saved and the key // is not temporary any more. Console.WriteLine(dpt.EntityKey.IsTemporary); } catch (InvalidOperationException ex) { Console.WriteLine(ex.InnerException.Message); } catch (NotSupportedException ex) { Console.WriteLine(ex.InnerException.Message); } }' Initialize the connection string. Dim connectionString As String = "metadata=res://*/School.csdl|res://*/School.ssdl|res://*/School.msl;provider=System.Data.SqlClient;" & "provider connection string=""Data Source=.;Initial Catalog=School;Integrated Security=True;MultipleActiveResultSets=True""" Using context As New SchoolEntities(connectionString) Try If context.DatabaseExists() Then ' Make sure the database instance is closed. context.DeleteDatabase() End If ' View the database creation script. Console.WriteLine(context.CreateDatabaseScript()) ' Create the new database instance based on the storage (SSDL) section ' of the .edmx file. context.CreateDatabase() ' The following code adds a new objects to the context ' and saves the changes to the database. Dim dpt As New Department() context.Departments.AddObject(dpt) ' An entity has a temporary key ' until it is saved to the database. Console.WriteLine(dpt.EntityKey.IsTemporary) context.SaveChanges() ' The object was saved and the key ' is not temporary any more. Console.WriteLine(dpt.EntityKey.IsTemporary) Catch ex As InvalidOperationException Console.WriteLine(ex.InnerException.Message) Catch ex As NotSupportedException Console.WriteLine(ex.InnerException.Message) End Try End Using