J'utilise un ObjectDataSource pour effectuer des opérations CRUD. Pour une raison quelconque, j'obtiens un message "ObjectDataSource 'ObjectDataSource1' n'a pas de valeurs à insérer. Check that the 'values' dictionary contains values."
Des suggestions ?
Je comprends que ce contrôle hérite du contrôle ObjectDataSource. D'après la documentation http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.insertmethod.aspx
Si la propriété DataObjectTypeName est définie, la méthode est résolue différemment. L'ObjectDataSource recherche une méthode dont le nom est spécifié dans la propriété InsertMethod et qui prend un paramètre du type spécifié dans la propriété DataObjectTypeName.
C'est ainsi que mon contrôle ObjectDataSource est configuré.
<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>
J'ai placé un point d'arrêt sur InsertMethod, mais l'application ne l'atteint même pas lorsque j'essaie d'enregistrer mon formulaire. Je soupçonne que le type DataObjectType n'est pas instancié correctement pour une raison quelconque.
J'essaie d'effectuer l'opération Insert dans l'EditForm d'un contrôle ASPxGridview et le DataObjectType est un EF POCO qui a quelques propriétés supplémentaires (marquées virtuelles) pour charger les entités liées à partir de l'ObjectContext. Je pense que c'est peut-être le problème mais je ne sais pas comment le résoudre (j'ai cherché partout ! !!).
Toute aide serait grandement appréciée !