我正在使用实体框架5,并执行一个简单的查询,从一个表中获取一些用户。
SQL数据库已经创建好了,所以我使用我的实体来映射我拥有的内容。
当我运行我的查询时,我检测到执行了其他查询,其中有两个有错误:
查询1
错误:无效的对象名“dbo.__MigrationHistory”。
SELECT
[GroupBy1].[A1] AS [C1]
FROM (
SELECT
COUNT(1) AS [A1]
FROM [dbo].[__MigrationHistory] AS [Extent1]
) AS [GroupBy1]查询2
错误:无效的对象名'dbo.EdmMetadata‘。
SELECT TOP (1)
[Extent1].[Id] AS [Id],
[Extent1].[ModelHash] AS [ModelHash]
FROM [dbo].[EdmMetadata] AS [Extent1]
ORDER BY [Extent1].[Id] DESC为什么会这样呢?
我的数据库中没有dbo.EdmMetadata和dbo.__MigrationHistory表,因为数据库已经存在。
如何解决这个问题?
发布于 2013-10-15 14:38:40
由于数据库已经存在,所以您将没有codefirst所期望的dbo.EdmMetadata和dbo.__MigrationHistory。要解决这个问题,可以尝试将SetInitializer设置为null。
static NameOfYourContext()
{
Database.SetInitializer<NameOfYourContext>(null);
} 您可以在Scott Gu发布的这个帖子的注释部分看到这一点。
发布于 2013-11-11 05:04:46
您需要遵循以下三个步骤:
1-如果尚未完成,请在包管理器中启用迁移:
Enable-Migrations2-添加迁移并确保使用-IgnoreChanges开关,因为您已经有了一个现有的数据库:
Add-Migration InitialModel -IgnoreChanges3-更新数据库。这将自动为您创建__MigrationHistory表。
Update-Database发布于 2016-07-12 11:32:52
我禁用了异常设置。它忽略了这个异常,然后自动地为我创建了这些表。
https://stackoverflow.com/questions/19379956
复制相似问题