You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF6 WinForm应用添加数据库对象时出现空引用异常求助

EF6 WinForm添加对象触发空引用异常的问题排查与解决

兄弟,问题一眼就能看出来——你在CartContext里定义的Products是字段(Field)而非属性(Property),EF6根本不会自动初始化这个字段,所以它一直是null,调用Add方法时自然触发空引用异常了!

具体错误点

你当前的代码里:

public DbSet<Product> Products; // 这是字段,EF6不识别也不会自动初始化

EF6要求实体集必须是带getter和setter的属性,这样它才能在上下文初始化时自动创建DbSet的实例。

修正后的代码

把Products改成属性形式即可:

using System.Data.Entity;
namespace DAL {
    public class CartContext: DbContext {
        public CartContext(): base("DbConnection") { }
        // 改为带get和set的属性,EF会自动初始化实例
        public DbSet<Product> Products { get; set; }
    }
}

额外注意事项

  • 确保WinForm项目的App.config里配置了正确的DbConnection连接字符串,否则即使修复了属性,也可能出现数据库连接失败的问题。
  • 如果你用的是Code First模式,记得先启用迁移(Enable-Migrations命令)或者手动确保数据库已经生成,避免后续出现找不到表的问题。

内容的提问来源于stack exchange,提问作者user3525444

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:37:46