У меня есть таблица с названием Подписки.Я хотел бы перенаправить любой выбор LINQ из этой таблицы в лямбду Moles, чтобы из этой таблицы возвращалось только 3 строки - в основном я хочу обойти вызов базы данных.Пока что код, который я имею, выглядит следующим образом:
// 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;
};
К сожалению, он не работает.У меня есть около 1000 строк в таблице подписок в базе данных.Когда я запускаю некоторый тестовый код с этим перенаправлением, я получаю 1000 строк из базы данных вместо 3 строк, которые находятся в методе перенаправления.Я явно что-то упускаю.Что я могу сделать, чтобы возвращать только эти 3 строки всякий раз, когда какой-либо тестовый код выбирается из подписок?Я получил 3 вызова в 3 разные таблицы, и им всем нужно выбрать данные, которых нет в БД, чтобы этот тест заработал.
Уточнение: вызов перенаправленного метода происходит, когда я выбираю from sub in dc.Subscriptions ...
.Но возвращенные строки не являются строками, которые находятся в перенаправлении.