编写了以下简单代码,以了解Entity Framework Code First方法。但是,我无法使其正常工作。
也没有收到任何错误。验证生成的.mdf文件后,找不到记录。
即使在调试代码时也无法确定问题。谁能建议我在哪里做错了!
下面是我的代码。
下面是Person类
namespace EFCF
{
public class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
下面是上下文类
namespace EFCF
{
public class Context : DbContext
{
public DbSet<Person> Persons { get; set; }
}
}
下面是用控制台应用程序编写的测试程序。
namespace TestEFCF
{
class Program
{
static void Main(string[] args)
{
//Insert person record
using (var context = new Context())
{
context.Database.CreateIfNotExists();
Person person = new Person
{
PersonId = 1001,
FirstName = "Ashok",
LastName = "Kumar"
};
context.Persons.Add(person);
}
//Get person record
using (Context context = new Context())
{
var people = context.Persons;
foreach (var person in people)
{
Console.WriteLine(person.PersonId + "\t" + person.FirstName + "\t" + person.LastName);
}
}
Console.Write("Press any key to continue...");
Console.ReadKey();
}
}
}
答案 0 :(得分:0)
您必须首先从Visual Studio的Package Manager控制台中运行Add-Migration <YourMigrationName>
命令(等效于以DB first方法生成迁移脚本)。然后运行Update-Database
命令(等效于在数据库中首先运行迁移脚本)来应用迁移。
您可以参考this页以获取详细信息。
注意:从C#代码中删除不必要的代码以生成数据库。
答案 1 :(得分:0)
我之前的代码中的小错误。
无需为此特定情况启用迁移。只需在正确的位置添加context.SaveChanges()
命令,如下所示。
下面是完整的代码。
//Insert person record
using (var context = new Context())
{
context.Database.CreateIfNotExists();
Person person = new Person
{
FirstName = "Ashok",
LastName = "Kumar"
};
context.Persons.Add(person);
context.SaveChanges();
}