ObjectDataSource没有要插入的值

Ric*_*ich 1 asp.net entity-framework objectdatasource entity-framework-4.1

我正在使用ObjectDataSource来执行CRUD操作.出于某种原因,我得到一个"ObjectDataSource'ObjectDataSource1'没有要插入的值.检查'values'字典是否包含值."

有什么建议?

我知道这个控件继承自ObjectDataSource控件.根据文档http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.insertmethod.aspx

如果设置了DataObjectTypeName属性,则以不同的方式解析该方法.ObjectDataSource查找具有在InsertMethod属性中指定的名称的方法,该属性采用DataObjectTypeName属性中指定的类型的一个参数.

这就是我的ObjectDataSource控件的设置方式.

<asp: ObjectDataSource ID="ObjectDataSource1" runat="server" 
                DataObjectTypeName="MyApplication.Entities.Domain.MyObject" ConflictDetection="CompareAllValues"
                OldValuesParameterFormatString="original{0}" SelectMethod="GetUserDisplays"
                InsertMethod="CreateMyObject" UpdateMethod="UpdateMyObject" DeleteMethod="DeleteDisplay">
            </asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

我在InsertMethod上设置了一个断点,但是当我尝试保存表单时,应用程序甚至没有点击它.我怀疑DataObjectType由于某种原因没有被正确实例化.

我试图执行在ASPxGridview控制EditForm插入操作和DataObjectType是EF POCO它有它的一些附加属性(标记虚拟)从ObjectContext中加载相关的实体.我认为这可能是问题,但不知道如何解决它(到处寻找!!!).

任何帮助将不胜感激!

Ric*_*ich 5

虽然我无法确定为什么DataObjectType没有自动实例化,但我意识到在调用ObjectDataSource上的InsertMethod之前需要添加一个输入参数.为此,我需要在Inserting事件中添加输入参数(在我的场景中).感谢StackOverflow上的另一篇文章,我能够弄清楚我需要从ObjectDataSource中删除'DataObjectTypeName'属性才能触发Inserting事件.