InsertOnSubmit() вызывает MissingMethodException
Я пытаюсь реализовать 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.ReadCallbackValgteProjekter.AnonymousMethod__1(System.Windows.Controls.CheckBox delChk, Newtonsoft.Json.Linq.JObject delO) Строка 141 + 0x7 байтов C# mscorlib.dll!, объект obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, параметры объекта, культура System.Globalization.CultureInfo, bool isBinderDefault, System.Reflection.Assembly, вызывающий объект bool verifyAccess, ref System.Threading.StackCrawlMark stackMark)
mscorlib.dll! System.Reflection.RuntimeMethodInfo.InternalInvoke (объектный объект, System.Reflection.BindingFlags invokeAttr, привязка System.Reflection.Binder, параметры объекта [], System.Globalization.CultureInfo culture, ref System.Threading.StackCrawlMark stackMark) 0x168 байт mscorlib.dll!System.Reflection.MethodBase.Invoke(параметры объекта, параметры объекта []) + 0 байт
mscorlib.dll!System.Delegate.DynamicInvokeOne(объект [] args) + 0x98 байт
mscorlib.dll!System.MulticastDelegate.DynamicInvokeImpl(объект [] args) + 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. System.Windows.Hosting.NativeMethods.ScriptParam[] pParams, ref System.Windows.Hosting.NativeMethods.ScriptParam pResult) + 0x5e байт [Внешний код]
Мне удалось вставить другие объекты, используя тот же подход, но я не могу понять, что отличает этот объект.
2 ответа
Я решил это сам, погуглил еще больше об этом (Типично, ища часы, затем сразу после сообщения здесь я натыкаюсь на ответ..)
Обычно мои классы должны иметь пустой конструктор, если они не появляются, появляется ошибка. Поэтому добавление пустых конструкторов в мои классы решило эту проблему.
Я хотел бы добавить, что конструктор должен быть публичным. У меня та же проблема, но в моем классе модели у меня был пустой внутренний конструктор.