我刚刚将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],因此它不会返回任何行。这是来自实体框架的查询。
/****** 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
我先使用代码。
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" />
答案 0 :(得分:2)
在第一次迁移之前,您的表MyTable
已存在于数据库中。所以你可以删除这个表,然后在第一次运行应用程序时重新创建它。
修改强>
如果你不想删除你的桌子,如果你至少使用EF 4.3那么
从控制台Add-Migration InitialMigration -IgnoreChanges
运行
然后运行Update-Database