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" />