c# - 调用 SaveChanges 方法时,EF Core 引发异常
问题描述
(我为我的英语道歉)
更新
好吧,现在我感觉很愚蠢,我忘了安装包
Microsoft.Entityframeworkcore.tools
在我的控制台应用程序项目中。我安装了软件包并且它运行正常。我不知道这是否对某人有帮助,但我会让帖子打开。致敬!!!
我正在 .Net Framework 控制台应用程序中使用 Entity Framework Core 进行一些测试。我将我的解决方案分为三个项目:一个用于我的模型,一个用于我的数据上下文,一个用于控制台应用程序。
我正在使用 Mysql 服务器作为数据库,并使用迁移轻松创建数据库,但是当我尝试在数据库中插入一些数据时,当我调用该SaveChanges
方法时,我的应用程序会引发异常。
我需要构建一个企业应用程序,并且需要将现有数据库(.dbf
)迁移到 Mysql。我正在尝试在控制台应用程序中使用 EF Core 并进行一些测试。
处置交易。
关闭与服务器“localhost”上的数据库“EntityFrameworkCore”的连接。
关闭与服务器“localhost”上的数据库“EntityFrameworkCore”的连接。保存上下文类型“EntityFrameworkCore.Data.TiendaContext”的更改时,数据库中发生异常。
Microsoft.EntityFrameworkCore。DbUpdateException:
更新条目时发生错误。有关详细信息,请参阅内部异常。
---> System.MissingFieldException: Campo no encontrado: 'Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource.ThrowReadValueExceptionMethod'。
这是我的程序课
class Program
{
static void Main(string[] args)
{
InsertCliente();
}
private static void InsertCliente()
{
using (var ctx = new TiendaContext())
{
var cliente = new Cliente { Nombre = "Pedro" };
ctx.GetService<ILoggerFactory>().AddProvider(new MyLoggerProvider());
ctx.Clientes.Add(cliente);
ctx.SaveChanges();
}
}
}
我的DbContext
课
public class TiendaContext:DbContext
{
public DbSet<Cliente> Clientes { get; set; }
public DbSet<Producto> Productos { get; set; }
public DbSet<Transaccion> Trasacciones { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ProductosTransacciones>()
.HasKey(k => new { k.ProductoId, k.TransaccionId });
base.OnModelCreating(modelBuilder);
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySQL(
"server=localhost;port=3306;database=EntityFrameworkCore;uid=root;password=408792");
}
}
解决方案
从您报告的异常中可以看出您正在尝试保存的实体;与数据库结构不匹配。将实体与表进行比较以确保它们匹配。
推荐阅读
- javascript - 防止滑块上的范围值重叠 (noUiSlider)
- python - 如何告诉 mock.assert_call_once() 接受对象的任何实例?
- sql - 是否可以计算不同月份具有相同 ID 的项目数(例如跨聚合月份的交叉点)?
- java - 在Java中存储多个城市的最佳方法是什么?
- python - Tesseract 是否在内部进行图像大小调整?
- scala - Scala中的依赖注入与部分应用程序
- scala - 使用 spark 将文件加载到 couchbase
- web-scraping - 为什么我在网页抓取时得到一个空列表而不是包含元素的列表
- css - 隐藏单个字段标签
- javascript - 光从值 0 变为 255,然后再次变为 0