私のデータベースには、StaffMembersというテーブルがあります
linq-to-sqlを使用してこれを.netプロジェクトに取り込むと、エンティティクラスStaffMemberが作成されます。
これで、プロジェクトに部分クラスStaffMemberも作成して、他の最上位レイヤーで使用するプロパティを追加しました。例えば。IsDeletedプロパティ。この部分クラスは、他のいくつかのプロパティも確実に実装されるように、抽象クラスとインターフェースも継承します。
「StaffMember」の新しいインスタンスを作成すると
例えば。StaffMember newStaff = new StaffMember(); そしてそれにすべてのプロパティなどを与えます
次に、マネージャーを介してコンテキストでInsertOnSubmitを呼び出します。
Add(StaffMember newStaff)
{
context.StaffMembers.InsertOnSubmit(newStaff);
context.Save();
}
「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが発生します。
on context.StaffMembers.InsertOnSubmit(newStaff);
スタックは言う
" at System.Data.Linq.Mapping.EntitySetDefSourceAccessor`2.GetValue(T instance)\r\n at
System.Data.Linq.Mapping.MetaAccessor`2.GetBoxedValue(Object instance)\r\n at
System.Data.Linq.ChangeTracker.StandardChangeTracker.StandardTrackedObject.HasDeferredLoader(MetaDataMember deferredMember)\r\n at
System.Data.Linq.ChangeTracker.StandardChangeTracker.StandardTrackedObject.get_HasDeferredLoaders()\r\n at
System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(MetaType mt, Object obj, Dictionary`2 visited, Boolean recurse, Int32 level)\r\n at
System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(Object obj, Boolean recurse)\r\n at
System.Data.Linq.ChangeTracker.StandardChangeTracker.Track(Object obj)\r\n at System.Data.Linq.Table`1.InsertOnSubmit(TEntity entity)\r\n at
BusinessObjects.StaffMemberManager.Add(StaffMember staffMember) in
C:\\StaffMemberManager.cs:line 251"
なぜこれが起こっているのか、そしてそれを回避する方法は何かという考え。
ありがとう