2011-07-27 12 views
5

aquí es algo que parece fácil pero me vuelve loco desde hace días ...Cómo ejecutar el primer archivo DDL del modelo de Entity Framework Model en una base de datos SqlServer Compact?

Intento crear una aplicación con Entity Framework y Sql Server Compact. Quiero usar el primer enfoque modelo. Creé un archivo edmx para el modelo y ejecuté el asistente Generación de base de datos que produjo un archivo edmx.sqlce que contiene los comandos de creación de tabla. ¿Pero dónde ejecutar este archivo edmx.sqlce?

He intentado ejecutar el archivo enviando el contenido al comando ExecuteNonQuery del SqlCommand. Pero también da errores de sintaxis. Pero, ¿por qué el archivo edmx.sqlce generado debería estar corrupto? Creo que tengo que ejecutar el archivo en otro lugar. ¿Alguien puede decirme dónde? (Solo tengo una versión expresa de C#).

El contenido del archivo edmx.sqlce es:

-- -------------------------------------------------- 
    -- Entity Designer DDL Script for SQL Server Compact Edition 
    -- -------------------------------------------------- 
    -- Date Created: 07/27/2011 23:50:28 
    -- Generated from EDMX file: C:\Users\Ralf\Programmierung\MySoftware\MySoftware\MySoftwareDatenbank\MySoftwareDataModel.edmx 
    -- -------------------------------------------------- 


    -- -------------------------------------------------- 
    -- Dropping existing FOREIGN KEY constraints 
    -- NOTE: if the constraint does not exist, an ignorable error will be reported. 
    -- -------------------------------------------------- 


    -- -------------------------------------------------- 
    -- Dropping existing tables 
    -- NOTE: if the table does not exist, an ignorable error will be reported. 
    -- -------------------------------------------------- 

     DROP TABLE [DataSourceSet]; 
    GO 

    -- -------------------------------------------------- 
    -- Creating all tables 
    -- -------------------------------------------------- 

    -- Creating table 'DataSourceSet' 
    CREATE TABLE [DataSourceSet] (
     [Id] int IDENTITY(1,1) NOT NULL 
    ); 
    GO 

    -- -------------------------------------------------- 
    -- Creating all PRIMARY KEY constraints 
    -- -------------------------------------------------- 

    -- Creating primary key on [Id] in table 'DataSourceSet' 
    ALTER TABLE [DataSourceSet] 
    ADD CONSTRAINT [PK_DataSourceSet] 
     PRIMARY KEY ([Id]); 
    GO 

    -- -------------------------------------------------- 
    -- Creating all FOREIGN KEY constraints 
    -- -------------------------------------------------- 

    -- -------------------------------------------------- 
    -- Script has ended 
    -- -------------------------------------------------- 

Mi entorno es: - SqlServerCompact 3,5 - Visual C# 2010 Express

Respuesta

0

Usted no debería tener que ejecutar la secuencia de comandos DDL manualmente , debe hacerlo automáticamente la primera vez que cree un DbContext en un código que esté asociado correctamente con la conexión de base de datos deseada. No estoy tan familiarizado con el modelo primero como lo estoy con el código primero, pero entiendo que SQL Server CE 4 es mejor compatible con EF 4.1.

Si, por algún motivo, aún desea ejecutar el script DDL manualmente mediante ExecuteNonQuery, le recomendamos eliminar todos los terminadores de proceso por lotes ("GO"), ya que ExecuteNonQuery no admite consultas por lotes.

+0

Gracias usted tengo una solución ahora. Tuve que instalar Sql Management Studio Express, también puede manejar bases de datos compactas y allí puedo ejecutar el archivo DDL. –

0

Supongo que el enfoque Model-first es un obstáculo para la base de datos SQL CE. Demasiados problemas con el cambio de shema de la base de datos y la arquitectura de la base de datos.

  1. hay una herramienta para VS2010 < Entity Designer Database Generation Power Pack> Sin embargo, su ya no es compatible.
  2. Otra extensión útil < SQL Server Compact/SQLite Toolbox> para VS 2010-2015 Existe un editor sql incorporado donde puede intentar ejecutar el archivo edmx.sqlce. Aunque, antes de ejecutar el archivo de secuencia de comandos que necesita para deshacerse de GO y mesa Alter instrucciones para hacer que se ejecute
  3. o puede utilizar el software de terceros, como base de datos SQL CE Editor
Cuestiones relacionadas