实体框架电源工具:错误“对象引用未设置为对象的实例”

本文关键字:设置 对象 实例 对象引用 电源 框架 工具 错误 实体 | 更新日期: 2023-09-27 18:09:46

简短明了:

当我右键单击我的DBContext类并选择"查看实体数据模型(只读)"时我得到一个弹出对话框阅读"对象引用不设置为对象的实例",这是不显示为异常或输出错误,当我编译和运行我的代码正常;事实上,当我从控制台应用程序中查询数据库时,关系和类似乎工作得很好,我正在测试一切。

有人知道为什么我会得到这个错误吗?另外,有什么工具可以帮助验证我的数据模式吗?我偶尔会得到错误,指出我的缺陷,但更多的时候,我必须运行查询来测试。任何建议都是感激的!


长版:

我一直致力于将EF数据库优先的设计器数据模型从现有的数据库模型转换为代码优先。我已经将大约80个实体映射到POCO类,并使用流畅的API定义了至少同样多的关系。我从在数据库上运行visual studio向导的脚手架类开始,这工作得很好,但我一直在进行大规模的重构,以使代码库与新模型一起工作。

无论如何,我现在通过每次添加一个实体来测试数据模型,以便我知道哪些POCO实体和关系引起了问题。我想使用EF电动工具来帮助验证/可视化模型,但它们会产生我上面描述的错误。再次感谢您的帮助。

实体框架电源工具:错误“对象引用未设置为对象的实例”

这篇文章为我指明了正确的方向

EF Power Tools对连接字符串很敏感。在我的例子中,我发现在DbContext类中引用conn字符串的方式产生了差异:

    internal class MyContext : DbContext
    {
    //Both Migrations and EF PowerTools were okay with this…
    public MyContext() : base(“name=MyConnStringName”)
    //Migrations was okay with this, but EF PowerTools Throws “object reference not set to an instance of an object” in a dialog box… Very confusing :s
    public MyContext() : base(ConfigurationManager.ConnectionStrings[“MyConnStringName”].ConnectionString)