MVC4와 엔티티 프레임 워크 5를 사용하고 있으며 많은 테이블을 가지고 있습니다. 우리 프로젝트의 규칙으로, 우리는 데이터베이스에서 어떤 레코드도 삭제하지 않으며, 각 레코드는 isActive 필드를 가지며, 그 필드가 false이면 삭제 된 것으로 간주합니다. 내가 활성 기록을 얻을 확장 방법을 쓰고 싶었다 일부 인터넷 검색 후 나는이 쓴 :내 경우에는 확장 방법을 사용하는 것이 옳은가요?
public static IQueryable<Company> GetAll(this IQueryable<Company> source)
{
return source.Where(p => p.isActive);
}
가 지금은
Context db = new Context();
db.Company.GetAll();
같은 활성 기록을 얻기 위해 내 확장 방법을 사용하지만,의 내가 말을 할 수 있습니다 내 데이터베이스에 50 개 이상의 테이블이 있는데, 각 테이블에 대해 동일한 확장 메소드를 작성하는 것이 좋습니다. 모든 테이블에 대해서 단 하나의 GetAll() 확장 메소드를 작성하는 더 좋은 방법이 있습니까? 실제로이 인스턴스의 확장 메서드를 사용하는 것이 올바른지 잘 모르겠다.
누군가 저를 도우려고하고 올바른 방법을 보여줄 수 있습니까? 코드 예제에 도움을 주시면 감사하겠습니다.
신속한 답변 LordCover에 감사드립니다. 나는 데이터베이스의 첫 번째 접근법을 사용한다. EF5.x DbContextGenerator는 일반적인 POCO 클래스 생성기입니까? 정상적인 POCO 클래스 생성기는 어디에서 찾을 수 있습니까? 그건 그렇고, 당신의 예제에서는 "소스"에 대한 정의가 없습니다. – cck
알다시피,'source'는 객체의 집합 인 객체 집합입니다. –
그러나 어떻게 그것이 활성 필드를 가지고 있다고 말합니까? 컴파일러에서 "no such field"와 같은 오류를 발생시킵니다. 나는 내가 Company 클래스에 던져야한다고 생각한다. 그러나 아무것도 바뀌지 않을 것이다, 그리고 나는 모든 나의 테이블을 위해 그것을해야 할 것이다? – cck