2011-07-27 3 views
5

ここには簡単に見えるが、私は日々狂っている。...Entity Frameworkモデルの最初のDDLファイルをSqlServer Compactデータベースで実行する方法は?

私はEntity FrameworkとSql Server Compactでアプリケーションを作成しようとしている。 私はモデルの最初のアプローチを使いたいです。 モデルのedmxファイルを作成し、データベース生成ウィザードを実行して、テーブル作成コマンドを含む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 
    -- -------------------------------------------------- 

私の環境は次のとおりです。 - SqlServerCompact 3.5 - ビジュアルC#2010 Expressの

答えて

0

手動でDDLスクリプトを実行する必要はありません目的のデータベース接続に正しく関連付けられているコードでDbContextを初めて作成するときは、自動的に実行する必要があります。私は最初にコードを覚えているので、最初のモデルに慣れていませんが、SQL Server CE 4がEF 4.1でよりよくサポートされていることを理解しています。

何らかの理由でExecuteNonQueryを使用してDDLスクリプトを手動で実行する場合は、ExecuteNonQueryがバッチクエリをサポートしていないため、すべてのバッチターミネータ( "GO")を削除する必要があります。

+0

様お願いサードパーティ製のソフトウェアを使用することができますあなたは今私は解決策を持っています。 私はSql Management Studio Expressをインストールしなければなりませんでした。コンパクトデータベースも扱えるため、DDLファイルを実行できます。 –

0

私は、モデルファーストのアプローチはSQL CEデータベースの障害であると思います。データベースシーマの変更とDBアーキテクチャに関する問題が多すぎます。

  1. VS2010用のツールが1つあります。< Entity Designer Database Generation Power Pack>ただし、サポートされなくなりました。
  2. もう1つの便利な拡張子< SQL Server Compact/SQLite Toolbox> VS 2010-2015用edmx.sqlceファイルを実行しようとすることができるbuild-in sqlエディタがあります。 、スクリプトファイルを実行する前に、あなたはGOのALTER TABLEを取り除く必要がありますが命令は、それが
  3. を実行させるか、またはあなたはSQL CEデータベースエディタ
関連する問題