我是C#的初学者,在做项目时遇到了一些麻烦。我有DataGrid
Windows Form,它已连接到数据库。要编辑数据库中的记录,我必须在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
是我的datagrid的名称,BugDescriptor
是类,描述了数据库中记录的字段。当我尝试调试时,我有一个例外:Unable to cast object of type 'System.Data.Entity.DynamicProxies.Bug_ED6497CD7603C9E48A4F28CF92AF30E4A88B104DE0AC6FAF0D12F034495FF727' to type 'BugTrackingSystem.BugDescriptor
。
我做错了什么?问我,是否需要告诉我一些有关我的代码的信息。
附注:我已经阅读了类似问题的一些答案,但不知道如何在遇到麻烦时使用它们。
看来其中的物件不是DataBoundItem
type 。希望这对您的情况有意义。Bug
BugDescriptor
跟踪状态的实体框架动态生成可扩展实体类的代理类。这就是为什么您在异常中看到一个奇怪的类名的原因,而原始类名却是该名称的一部分。同样在VS上,您可以检查对象以找到基类。
System.Data.Entity.DynamicProxies。错误_ED6497CD7603C9E48A4F28CF92AF30E4A88B104DE0AC6FAF0D12F034495FF727
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句