首页 > 解决方案 > 无法使用实体框架代码优先方法生成数据库表

问题描述

编写以下简单代码来了解 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; }
    }
}

下面是用 Console Application 编写的测试程序。

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();
        }
    }
}

标签: ef-code-first

解决方案


您必须首先Add-Migration <YourMigrationName>从 Visual Studio 中的包管理器控制台运行命令(相当于在 DB 优先方法中生成迁移脚本)。然后运行Update-Database命令(相当于在 DB first 方法中运行迁移脚本)以应用迁移。

您可以参考页面了解详细信息。

注意:从 C# 代码中删除不必要的代码以生成数据库。


推荐阅读