InsertOnSubmit () вызывает MissingMethodException - PullRequest
1 голос
/ 18 января 2012

Я пытаюсь реализовать SQL CE в проекте WP7 Mango, но теперь я сталкиваюсь с этой ошибкой, когда пытаюсь вставить / сохранить объект в моей БД.

Мой код ниже:

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) Строка 141 + 0x7 байт C # mscorlib.dll! System.Reflection. .Reflection. Сборщик сборки, bool verifyAccess, ref System.Threading.StackCrawlMark stackMark)
mscorlib.dll! System.Reflection.RuntimeMethodInfo.InternalInvoke (объектный объект, System.Reflection.BindingFlags invokeAttr, привязка System.Reflection.Binder, параметры объекта [], System.Globalization.CultureInfo культура, ref System.Threading.StackCrawlMark stackMark 0x168 байт mscorlib.dll! System.Reflection.MethodBase.Invoke (параметры объекта, параметры объекта []) + 0xa байт
mscorlib.dll! System.Delegate.DynamicInvokeOne (объект [] args) + 0x98 байт
mscorlib.dll! System.MulticastDelegate.DynamicInvokeImpl (аргументы объекта []) + 0x8 байт
mscorlib.dll! System.Delegate.DynamicInvoke (объект [] args) + 0x2 байта
System.Windows.dll! System.Windows.Threading.DispatcherOperation.Invoke () + 0xc байт
System.Windows.dll! System.Windows.Threading.Dispatcher.Dispatch (приоритет System.Windows.Threading.DispatcherPriority) + 0x83 байта
System.Windows.dll! System.Windows.Threading.Dispatcher.OnInvoke (контекст объекта) + 0x8 байт System.Windows.dll! System.Windows.Hosting.CallbackCookie.Invoke (объект [] args) + 0x19 байт System.Windows.dll! System.Windows.Hosting.DelegateWrapper.InternalInvoke (объект [] args) + 0x2 байта System.Windows.RuntimeHost.dll! System.Windows.RuntimeHost.ManagedHost.InvokeDelegate (System.IntPtr pHandle, int nParamCount, System.Windows.Hosting.NativeMethods.ScriptParam [] pParams, ref System.Windows.Hosts.Set ) + 0x5e байт [Внешний код]

Мне удалось вставить другие объекты, используя тот же подход, но я не могу понять, что отличает этот объект.

Ответы [ 2 ]

1 голос
/ 19 января 2012

Я решил это сам, погуглил еще больше об этом (Обычно, ища часы, а затем сразу после сообщения здесь я натыкаюсь на ответ ..)

Иногда в моих классах должен быть пустой конструктор,если они этого не делают, появляется ошибка.Поэтому добавление пустых конструкторов в мои классы решило эту проблему.

0 голосов
/ 26 ноября 2012

Я хотел бы добавить, что конструктор должен быть публичным. У меня та же проблема, но в моем классе модели у меня был пустой внутренний конструктор.

...