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中加载相关的实体.我认为这可能是问题,但不知道如何解决它(到处寻找!!!).
任何帮助将不胜感激!
虽然我无法确定为什么DataObjectType没有自动实例化,但我意识到在调用ObjectDataSource上的InsertMethod之前需要添加一个输入参数.为此,我需要在Inserting事件中添加输入参数(在我的场景中).感谢StackOverflow上的另一篇文章,我能够弄清楚我需要从ObjectDataSource中删除'DataObjectTypeName'属性才能触发Inserting事件.