귀하의 질문은 광범위하고 잠재적으로 너무 광범위합니다. 내가 수집하는 것에서는 여러 개의 테이블이 있지만 서로 다른 열이있을 가능성이 큽니다. 너무 많은 코드를 재현하지 않고 단순히 컬럼을 기반으로 적절한 컨텐츠를 작성하는 일반적인 접근 방식을 찾고 있습니다.
당신과해야 할 수 있습니다 무엇 :
- 그 테이블을 작성합니다.
- 감사해야하는 내용을 결정하십시오.
- 이러한 테이블을 너무 서로 비교하십시오.
종종 콘텐츠를 추상화해야하는 정도를 결정하는 데 도움이됩니다. 이 특정 예제는 의 제어 반전에서 유용 할 수 있습니다. 또는 종속성 주입. 이 방법을 사용하면 특정 감사 대상을 특정 클래스에 주입 할 수 있습니다.
public interface IAudit<T>
{
void WriteToAudit(<T> model);
}
그래서이 특정
인터페이스는 감사 데이터 모델을 표현해야
일반, 구현합니다. 유연성을 제공하는 동시에 몇 가지 차별화 된 모델을 제공하여 요구 사항을 개선 할 수 있습니다.
이제 인터페이스를 상속 한 구현 클래스를 작성해야합니다. 이제
public class Inventory : IAudit<InventoryModel>
{
public void WriteToAudit(InventoryModel model)
{
// Write your database content, then pass *Properties* from the model.
// Which will write for this particular table.
}
}
이 방법의 강력한 부분 :
- 생성자
: 그래서 지금 당신은 본질적으로 새로운
IAudit
을 만들 수
public class Stuff
{
private IAudit audit;
public void DoSomething(model)
{
audit.WriteToAudit(model);
}
}
는, 당신은 통과 할 수있는 몇 가지 방법을 통해서이다
방법
이것은 엄청나게 거친 구현이며 여러 가지 오타가있을 수 있습니다. 이것은 빠른 게시물 이었지만 잘하면이 방향으로 당신을 가리 킵니다. 이 문제에 대한 자세한 내용은 here을 참조하십시오.
나는 이것을 Lightswitch와 통합하는 데 문제가 있음을 인정해야합니다. 인터페이스 및 제네릭에 대한 내 경험이 부족합니다. Lightswitch에서 이것을 어떻게 사용할 수 있는지에 대한 지침이 있습니까? – HiTech
전 라이트 스위치를 사용한 적이 없습니다. – Greg