안녕하세요 저는 상속받을 기본 클래스를 만들고 싶지만 몇 가지 문제가 있습니다.C# Generics 상속 데이터 액세스
나는 거의 동일한 작업을 수행하지만 서로 다른 데이터베이스에서 작업하는 데이터를 얻고 다른 내부 데이터 구조를 사용하여 데이터를 조작합니다. 나는 가상의 doSomething 메서드를 기본에두고 가상적으로 이상적인 가상 데이터 액세스 메서드를 기본으로 갖고 싶습니다.
두 번째 문제는 generics를 사용하여 해결할 수 있지만 사용하는 DBMl 컨텍스트의 생성자가 매개 변수가 아니기 때문에 첫 번째 문제를 해결하기 위해 generics를 사용할 수 없습니다.
나는이 모든 잘못에 대해 생각하고 있습니다. 나는 건방진이 되려고하지만 상속에 반하는 것처럼 보입니다.
아래의 예제 코드.
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
}
}
당신은 컨텍스트를 만드는 공장을 필요로하는 것 공통 인터페이스/기본 클래스가 생성됩니다. – CodingBarfield
실제로 당신이 성취하고자하는 것은 무엇입니까? –