Привет! Я хочу создать базовый класс для наследования, но у меня возникли некоторые проблемы.
У меня есть два класса, которые выполняют практически одинаковую работу, но получают данные, с которыми работают, из разных баз данных и используют разные внутренние структуры данных для манипулирования данными.Я хочу иметь виртуальный метод doSomething в базе и в идеале виртуальный метод dataAccess также в базе.
Вторая проблема может быть решена путем использования обобщений, но я не могу использовать обобщения для решения первой проблемы, так как конструктор контекста DBMl, который я использую, не без параметров.
Я все об этом говорю неправильно.Я пытаюсь быть СУХИМ, но, похоже, работаю против наследования.
Пример кода ниже.
class Foo {
private _ctx DBML.Database1; // Inherits from System.Data.Linq.DataContext
public Foo(string constring) {
_ctx = new DBML.Database1(constring);
}
private DoSomeThing() {
FooDataObj = DataAccess(1);
}
private FooDataObj DataAccess(int ID)
{
var v = from t in _ctx
where t.Id = ID
select new FooDataObj(t);
return v
}
}
class Bar {
private _ctx DBML.Database2; // Inherits from System.Data.Linq.DataContext
public Bar(string constring)
{
_ctx = new DBML.Database2(constring);
}
private DoSomeThing() {
BarDataObj = DataAccess(1);
}
private BarDataObj DataAccess(int ID) {
var v = from t in _ctx
where t.Id = ID
select new BarDataObj(t);
return v
}
}