InsertOnSubmit()导致MissingMethodException

时间:2012-01-18 09:12:35

标签: sql windows-phone-7 missingmethodexception

我正在尝试在WP7 Mango项目中实现SQL CE,但是当我尝试将对象插入/保存到我的数据库时,我遇到了这个错误。

我的代码如下:

public static void Save(MyObject myobject)
    {
        using (DBDataContext dc = new DBDataContext(DBDataContext.ConnectionString))
        {
            dc.MyObject.InsertOnSubmit(myobject);
            dc.SubmitChanges();
        }
    }

当代码命中insertonsubmit行时,它会以

分隔
MissingMethodException was unhandled
MissingMethodException

这就是它告诉我的全部。

调用堆栈:

mscorlib.dll!System.Activator.InternalCreateInstance(System.Type type, bool nonPublic, ref System.Threading.StackCrawlMark stackMark) + 0xe4 bytes  
mscorlib.dll!System.Activator.CreateInstance(System.Type type) + 0x2 bytes  
System.Data.Linq.dll!System.Data.Linq.WorkAround.ActivationHelper.CreateInstance(System.Type type)  
System.Data.Linq.dll!System.Data.Linq.ChangeTracker.StandardChangeTracker.StandardTrackedObject.CreateDataCopy(object instance) + 0x12 bytes    
System.Data.Linq.dll!System.Data.Linq.ChangeTracker.StandardChangeTracker.StandardTrackedObject.StartTracking() + 0x16 bytes    
System.Data.Linq.dll!System.Data.Linq.ChangeTracker.StandardChangeTracker.OnPropertyChanging(object sender, System.ComponentModel.PropertyChangingEventArgs args) + 0x16 bytes  
System.Data.Linq.dll!System.Data.Linq.ChangeTracker.StandardChangeTracker.Attach(object obj) + 0x1f bytes   
System.Data.Linq.dll!System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(System.Data.Linq.Mapping.MetaType mt, object obj, System.Collections.Generic.Dictionary<object,object> visited, bool recurse, int level) + 0x4e bytes   
System.Data.Linq.dll!System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(object obj, bool recurse) + 0x1d bytes  
System.Data.Linq.dll!System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(object obj) + 0x3 bytes 
System.Data.Linq.dll!System.Data.Linq.Table<FotoDok.EkstraFeltMulighed>.InsertOnSubmit(FotoDok.EkstraFeltMulighed entity) + 0xac bytes  
  

FotoDok.dll!FotoDok.EkstraFeltMulighed.Gem(FotoDok.EkstraFeltMulighed ekstrafeltmulighed)70行+ 0xc字节C#    FotoDok.dll!FotoDok.opdaterProjekter.behandlProjektJson(Newtonsoft.Json.Linq.JObject o)202行+ 0x7字节C#       FotoDok.dll!FotoDok.opdaterProjekter.ReadCallbackValgteProjekter.AnonymousMethod__1(System.Windows.Controls.CheckBox delChk,Newtonsoft.Json.Linq.JObject delO)Line 141 + 0x7 bytes C#       mscorlib.dll!System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo rtmi,object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,object parameters,System.Globalization.CultureInfo culture,bool isBinderDefault,System .Reflection.Assembly caller,bool verifyAccess,ref System.Threading.StackCrawlMark stackMark)
      mscorlib.dll!System.Reflection.RuntimeMethodInfo.InternalInvoke(object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,object [] parameters,System.Globalization.CultureInfo culture,ref System.Threading.StackCrawlMark stackMark)+ 0x168字节       mscorlib.dll!System.Reflection.MethodBase.Invoke(object obj,object [] parameters)+ 0xa bytes
      mscorlib.dll!System.Delegate.DynamicInvokeOne(object [] args)+ 0x98 bytes
      mscorlib.dll!System.MulticastDelegate.DynamicInvokeImpl(object [] args)+ 0x8 bytes
      mscorlib.dll!System.Delegate.DynamicInvoke(object [] args)+ 0x2 bytes
      System.Windows.dll!System.Windows.Threading.DispatcherOperation.Invoke()+ 0xc bytes
      System.Windows.dll!System.Windows.Threading.Dispatcher.Dispatch(System.Windows.Threading.DispatcherPriority priority)+ 0x83 bytes
      System.Windows.dll!System.Windows.Threading.Dispatcher.OnInvoke(对象上下文)+ 0x8字节       System.Windows.dll!System.Windows.Hosting.CallbackCookie.Invoke(object [] args)+ 0x19 bytes       System.Windows.dll!System.Windows.Hosting.DelegateWrapper.InternalInvoke(object [] args)+ 0x2 bytes       System.Windows.RuntimeHost.dll!System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(System.IntPtr pHandle,int nParamCount,System.Windows.Hosting.NativeMethods.ScriptParam [] pParams,ref System.Windows.Hosting.NativeMethods.ScriptParam pResult )+ 0x5e字节       [外部代码]

我设法插入其他对象,使用相同的方法就好了,但我无法弄清楚是什么让这个对象有所不同。

2 个答案:

答案 0 :(得分:1)

我自己解决了这个问题,搜索了更多关于它的信息(典型的,搜索了几个小时,然后在这里发帖后我偶然发现了答案......)

一般来说,我的类必须有一个空的构造函数,如果它们没有出现错误。 所以在我的类中添加空构造函数就解决了它。

答案 1 :(得分:0)

我想补充说构造函数必须是公共的。我有同样的问题,但在我的模型类中,我有空的内部构造函数。