Subscription이라는 테이블이 있습니다. 해당 테이블에서 LINQ 선택을 Moles 람다로 리디렉션하여 해당 테이블에서 3 행만 반환하도록하고 싶습니다. 기본적으로 데이터베이스 호출을 무시하고 싶습니다. 지금까지 내가 가지고있는 코드는 다음과 같습니다.Moles를 사용하여 LINQ를 통해 테이블에서 select를 리디렉션 할 수 있습니까?
// lazy loader is here to handle successive calls to the
// same table (otherwise there's an error)
// CM is a namespace alias
Table<CM.Subscriptions> subsTable = null;
MTheDataContext.AllInstances.SubscriptionsGet = (c) =>
{
if (subsTable == null)
{
subsTable = c.GetTable<CM.Subscriptions>();
subsTable.Attach(new CM.Subscriptions() { SubID = 1,
StatusCode = 1, CustomerID = custID1 });
subsTable.Attach(new CM.Subscriptions() { SubID = 2,
StatusCode = 1, CustomerID = custID2 });
subsTable.Attach(new CM.Subscriptions() { SubID = 3,
StatusCode = 4, CustomerID = custID3 });
// c.Refresh(RefreshMode.KeepCurrentValues, t);
}
return subsTable;
};
불행히도 작동하지 않습니다. 데이터베이스의 Subscriptions 테이블에 약 1000 개의 행이 있습니다. 이 리디렉션이 포함 된 테스트 코드를 실행하면 리디렉션 메서드에있는 3 개의 행 대신 데이터베이스에서 1000 개의 행이 표시됩니다. 분명히 나는 뭔가를 놓치고있다. 어떤 테스트 코드가 구독에서 선택할 때마다 을이 3 행 만 반환하려면 어떻게해야합니까? 나는 3 개의 다른 테이블에 3 개의 호출을 받았고, 모두이 테스트가 작동하도록 db에없는 데이터를 선택해야합니다.
설명 : from sub in dc.Subscriptions ...
select를 수행하면 리디렉션 된 메서드에 대한 호출이 발생합니다. 그러나 반환 된 행은 리디렉션에있는 행이 아닙니다.