如何在SqlServer Compact数据库上执行Entity Framework Model First DDL文件?

Mag*_*man 5 sql-server entity-framework entity-framework-4

这里的东西看起来很容易但是让我疯狂,因为天......

我正在尝试使用Entity Framework和Sql Server Compact创建一个应用程序.我想使用模型第一种方法.我为模型创建了一个edmx文件并运行了Database Generation向导,该向导生成了一个包含Table Creation命令的edmx.sqlce文件.但是在哪里运行这个edmx.sqlce文件?

我试图通过将内容发送到SqlCommand的ExecuteNonQuery命令来运行该文件.但它也会出现语法错误 - 但为什么生成的edmx.sqlce文件会被破坏?我想我必须在其他地方运行该文件.谁能告诉我在哪里?(我只有一个C#express版本).

edmx.sqlce文件的内容是:

    -- --------------------------------------------------
    -- 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
    -- --------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我的环境是: - SqlServerCompact 3.5 - Visual C#2010 Express

w.b*_*ian 0

您不必手动运行 DDL 脚本,它应该在您第一次在与所需数据库连接正确关联的代码中创建 DbContext 时自动完成。我不像对代码优先那样熟悉模型优先,但我知道 EF 4.1 更好地支持 SQL Server CE 4。

如果出于某种原因,您仍然希望通过 ExecuteNonQuery 手动执行 DDL 脚本,则需要删除所有批处理终止符(“GO”),因为 ExecuteNonQuery 不支持批处理查询。