0

MySQL データベースを SQL Server に変換しました。私はSQL Serverをまったく初めて使用します。Entity Framework 4で使用したいので、大したことはありません。

DB などのオブジェクトに関する概念が理解できていないと思います。SQL Server Mgmt Studio では、このクエリを実行できます

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT TOP 1000 [id]
  FROM [db].[dbo].[mytable]

正常に動作しますが、この接続文字列を使用すると

Data Source=MYPC-PC\;Integrated Security=SSPI;Min Pool Size=5;Max Pool Size=60;Connect Timeout=30

クエリは正常に実行されますが、[db] が除外されるため、行は返されません。これは Entity Framework からのクエリです。

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT TOP 1000 [id]
  FROM [dbo].[mytable]

このようなデータベースを含めるように接続文字列を変更すると

Data Source=MYPC-PC\;Integrated Security=SSPI;Database=db;Min Pool Size=5;Max Pool Size=60;Connect Timeout=30

このエラーが発生します

データベースには、'MyTable' という名前のオブジェクトが既に存在します。

しかし、 という名前のテーブルは 1 つしかありませんTable。この背後にある概念はわかりません。私は何を間違っていますか?SQL Server 2012 を使用しています

更新 1

最初にコードを使用します。

        var result = db.MyTable.Where(x => x.Prop == Prop)
            .OrderBy(x => x.Something)
            .Take(10);

        var data = result.ToList();

私の DbContext クラス

public class Context : DbContext
{
    
     public Context()
    : base("Context")
  {
    // Get the ObjectContext related to this DbContext
    var objectContext = (this as IObjectContextAdapter).ObjectContext;

    // Sets the command timeout for all the commands
    objectContext.CommandTimeout = 12000;
  }

    public DbSet<Models.MyTable> MyTable{ get; set; }


}

そしてweb.configで

  <connectionStrings>
    <add name="Context" providerName="System.Data.SqlClient" connectionString="connectionString"  />
4

1 に答える 1

2

最初の移行の前に、テーブルMyTableがデータベースに既に存在します。したがって、このテーブルを削除するだけで、最初のアプリケーション実行時に再作成されます。

編集: テーブルを削除したくない場合で、少なくとも EF 4.3 を使用している場合は
、コンソールから実行してから実行しAdd-Migration InitialMigration -IgnoreChanges
ますUpdate-Database

于 2012-11-17T15:13:42.550 に答える