부모 테이블 (P)에 함께 24 개의 특정 테이블 (A1, A2, C3) 중 하나를 가리키는 유형 (8 개의 가능성)과 위치 (3 개의 가능성) 필드가있는 14 년 된 스키마로 작업하고 있습니다. A3, B1, B2, B3 ...)이 있으며, 모두 해당 유형에 대해 동일한 스키마가 있습니다.동일한 LINQ 2 SQL 테이블에 대해 Facade를 작성하려면 어떻게합니까?
특정 테이블에 액세스하는 일반적인 방법을 만들고 싶지만 제대로 작동하지 않는 것 같습니다.
부모 테이블이 문서라고하고 두 가지 유형의 특정 (NewLetter, CurrentLetter 및 HistoricLetters) 및 (NewBill, CurrentBill 및 HistoricBills)라고 가정 해 봅시다.
public interface ILetter
{
DateTime CreationDate { get; }
}
public interface IBill
{
DateTime BillDate { get; }
}
// The LINQ 2 SQL generated classes already implement the CreationDate property
public partial class NewLetter : ILetter { }
public partial class CurrentLetter : ILetter { }
public partial class HistoricLetter : ILetter { }
그럼 내 코드에서, 나는이 작업을 수행 할 수 있도록하고 싶습니다 : 비슷한
switch (type)
{
case 1:
Table<IBill> specificBill;
switch (location)
{
...
}
case 2:
Table<ILetter> specificTable;
switch (location)
{
case 1: specificTable = dataContext.NewLetter as Table<ILetter>; break;
case 2: specificTable = dataContext.CurrentLetter ...
case 3: specificTable = dataContext.HistoricLetter ...
}
}
또는 무언가를. 불행히도 NewLetter가 ILetter를 구현하더라도 Table<NewLetter>
을 Table<ILetter>
으로 변환 할 수 없습니다. 이 주위에 어떤 방법이 있습니까? 나는 기본적으로 C#에서 뷰를 만들려고 노력하고 있는데, db 자체에서 뷰를 생성 할 수있는 권한이 없기 때문입니다.
을 윌 업데이트 예를 들어 그 일? 나는 하나의 필드 대신에 두 개의 필드를 끄는 것처럼 보입니다. – Jedidja
나는 상속에 대해 읽었으며이 상황을 위해 갈 길이 없다. Dynamic LINQ를 사용하면 GetTable()에서 작동하고 그에 대한 명령을 실행할 수 있습니다. – Jedidja