LinqToSql で 2 つのサブクラスを持つベース クラスを作成しました。サブクラスのカスタム更新メソッドのそれぞれに異なるストアド プロシージャを割り当てる必要があります。これで問題ありませんが、「無効なオブジェクト名 'xxx'」というエラーが表示されます。
例えば
DataClasses1DataContext dc = new DataClasses1DataContext();
Class2 c2 = new Class2() { ID = 1, Name = "test", Type = "s" };
dc.Class1s.InsertOnSubmit(c2);
dc.SubmitChanges();
...Class2はClass1を継承し、Class2には独自のカスタムINSERTメソッドがあります(これを実行したいです)。
ありがとう。
解決策:ブライアンの答えは、私が求めていたものを私に与えてくれました。デザイナーの背後にあるクラスに追加したコードは次のとおりです。
partial class DataClasses1DataContext
{
partial void InsertClass1(Class1 instance)
{
instance.Insert(this);
}
}
partial class Class1
{
public abstract void Insert(DataClasses1DataContext dataContext);
}
partial class Class2
{
public override void Insert(DataClasses1DataContext dataContext)
{
dataContext.InsertSP(((System.Nullable<int>)(ID)), Name);
}
}
partial class Class3
{
public override void Insert(DataClasses1DataContext dataContext)
{
dataContext.InsertSP2((System.Nullable<int>)(ID), Name);
}
}
InsertSP および InsertSP2 ストアド プロシージャは、sp を手動で呼び出す手間を省くために、デザイナーを使用してドラッグされました。
これについてはブライアンのすべての功績