我刚刚将 MySQL 数据库转换为 SQL Server。我对 SQL Server 完全陌生,我想将它与 Entity Framework 4 一起使用,所以我不应该成为一个大人物。
我想我没有得到关于数据库等对象的概念。在 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],因此不会返回任何行。这是来自实体框架的查询。
/****** 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”的对象。
但是只有一张表叫做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" />