ef-code-first - 无法使用实体框架代码优先方法生成数据库表
问题描述
编写以下简单代码来了解 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();
}
}
}
解决方案
您必须首先Add-Migration <YourMigrationName>
从 Visual Studio 中的包管理器控制台运行命令(相当于在 DB 优先方法中生成迁移脚本)。然后运行Update-Database
命令(相当于在 DB first 方法中运行迁移脚本)以应用迁移。
您可以参考此页面了解详细信息。
注意:从 C# 代码中删除不必要的代码以生成数据库。
推荐阅读
- c++ - 将 lambdas 作为回调传递给 C 函数
- javascript - 如何在 JS 中演示简单的无点样式
- python - Python:如何计算细胞之间的距离?
- c++ - 在带有 Qt 的 AppVeyor 中使用 std::thread
- php - Wordpress - 在 $_REQUEST 中保存帖子挂钩中的帖子元归档(粘贴复选框和摘录)
- typescript - 通常调用 () => void 类型的函数是什么?
- excel - IF + AND + 日期范围公式
- apache-kafka - 使用基于 kafka 的排序的 Hyperledger Fabric 1.4 设置 Hyperledger Caliper
- javascript - 通过 IPC 发送时“对象已被破坏”
- css - 具有后代选择器特异性的通用选择器