c# - 无法将类型为 'System.Data.Entity.DynamicProxies' 的对象转换为类型 'BugTrackingSystem.BugDescriptor'

标签 c# wpf datagrid

我是 C# 的初学者,在做我的项目时遇到了一些麻烦。我在连接到数据库的 Windows 窗体中有 DataGrid。要编辑数据库中的记录,我必须在数据网格上选择它。我写了选择代码,这里是。

public BugDescriptor GetSelectedBug()
{
    BugDescriptor selectedBug = null;

    if (ctlBugs.SelectedRows.Count > 0)
    {
        selectedBug = (BugDescriptor) ctlBugs.SelectedRows[0].DataBoundItem;
    }
    if (ctlBugs.SelectedCells.Count > 0)
    {
        selectedBug = (BugDescriptor) ctlBugs.SelectedCells[0].OwningRow.DataBoundItem;
    }

    return selectedBug;
}

所以,ctlBugs 是我的数据网格的名称,BugDescriptor 是类,描述数据库中记录的字段。 当我尝试调试时出现异常:无法将类型为“System.Data.Entity.DynamicProxies.Bug_ED6497CD7603C9E48A4F28CF92AF30E4A88B104DE0AC6FAF0D12F034495FF727”的对象转换为类型“BugTrackingSystem.BugDescriptor

我做错了什么?问我是否需要告诉我有关我的代码的其他信息。

P. S. 我已经阅读了一些类似问题的答案,但无法理解如何在遇到麻烦时使用它们。

最佳答案

如果你想禁用 DynamicProxies:

dbContext.Configuration.ProxyCreationEnabled = false;

在 EF 4 中

objectContext.ContextOptions.ProxyCreationEnabled = false;

但是在使用linq时需要调用“include”。

关于c# - 无法将类型为 'System.Data.Entity.DynamicProxies' 的对象转换为类型 'BugTrackingSystem.BugDescriptor',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157553/

相关文章:

c# - 仅在 Windows 服务 : System. Runtime.InteropServices.COMException (0x800A03EC) 中:来自 HRESULT 的异常:0x800A03EC

c# - 为什么 "decimal.TryParse()"在下面的代码中对于输入字符串 "-1"总是返回 0?

C# 覆盖默认的 ContextMenu 样式 (WPF)

c# - 向 WPF RichTextBox 上下文菜单添加自定义选项

c# - 根据节点类型不同的 WPF Treeview 图标

c# - 如何在WPF中的鼠标双击事件中获取datagrid中的cellvalue

c# - 属性和自动实现

wpf - DataGrid中粗体更改的单元格

wpf - 合并标题列数据网格 wpf

wpf - 使用 MVVM,如何从 DataTable 动态生成 W​​PF DataGrid 列并显示按钮列?