1

我先用代码,已经存在数据库表t_News,包含字段Id、NewsTitle、Content、AutoKeywords、Author。但是我不想实体包含字段 Author 所以定义这个实体类:

[Table ("t_News")]
public class News
{
    public int Id {get; set;}
    public string NewsTitle {get; set;}
    public string Content {get; set;}
    public string AutoKeywords {get; set;}
}

运行时错误:未处理的异常:System.InvalidOperationException:支持“PartContext”上下文的模型自数据库创建以来已更改。考虑使用 Code First 迁移来更新数据库 ( http://go.microsoft.com/fwlink/?LinkId=2 38269)。

4

2 回答 2

0

由于存在 __MigrationHistory 表,因此您并不真正处于“现有数据库上的代码优先”的情况,因为数据库在某种程度上是由 EF 创建的。

所以你可以删除 __MigrationHistory。这将为您带来“现有数据库上的代码优先”的情况。但是你必须考虑你会因为掉落而失去什么。这至少是 EF 的迁移功能。所以你要问你:为什么这个数据库是由 EF 创建的?__MigrationHistory 只影响我吗?

于 2013-04-02T16:57:54.883 回答
0

您应该首先创建迁移。像这样的东西:

Add-Migration "YouMigrationName" -ConnectionString "Data Source=.; Integrated Security=True; Pooling=False; MultipleActiveResultSets=true;" -ConnectionProviderName System.Data.SqlClient

比你必须更新你的数据库。这里还有一些例子:

Update-Database -ConnectionString "Data Source=.; Integrated Security=True; Pooling=False; MultipleActiveResultSets=true;" -ConnectionProviderName System.Data.SqlClient
于 2013-04-02T10:14:02.593 回答