我在 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 的麻烦。
布莱恩的所有功劳