尝试使用Entity Framework将我的类映射到现有表时遇到一些困难。我目前首先使用Code,但是没有它就创建了一个表,我无法将其映射到创建的模型。
我的课程:
[Table("AgentCallsByPartner")]
public class AgentCallsByPartnerModel
{
[Key]
public int AgentCallID { get; set; }
[Required]
public DateTime CallDate { get; set; }
public string CustomerID { get; set; }
public string AgentNo { get; set; }
public string AccountCreated { get; set; }
public string QuoteStarted { get; set; }
[Required]
public string GroupName { get; set; }
[Required]
public string GroupRollup { get; set; }
}
上下文
public DbSet<AgentCallsByPartnerModel> AgentCallsByPartner { get; set; }
这是我的表
但是当我尝试从数据库中获取用户时,我得到了一个异常
自创建数据库以来,DbContext已发生变化....
那我的错是什么?感谢
答案 0 :(得分:2)
你可以通过几种方式进行几种方式
在“工具”菜单中,点击Library Package Manager
,然后点击Package Manager Console
。
enable-migrations
命令在项目中创建一个Migrations文件夹,并在该文件夹中放入一个Configuration.cs文件,您可以编辑该文件以配置迁移。
(如果您错过了指示您更改数据库名称的上述步骤,迁移将找到现有数据库并自动执行add-migration
命令。这没关系,这只是意味着您不会运行测试部署数据库之前的迁移代码。稍后当您运行update-database
命令时,不会发生任何事情,因为数据库已经存在。)
更详细的迁移http://www.codeproject.com/Articles/801545/Code-First-Migrations-With-Entity-Framework
另一种方式:How to recreate database in EF if my model changes?
注意:如果您使用迁移,那么大部分时间都不会丢失数据值
迁移过程中的问题运行流动命令
Add-Migration Initial -IgnoreChanges
更新 - 数据库-verbose