Я работаю над шаблоном хранилища, где API выглядит следующим образом:
var visitor = repository.Find(x => x.EmailAddress == credentials.EmailAddress &&
x.Password == credentials.Password);
где посетитель является объектом домена, а x представляет этот объект домена. Подпись метода для метода Find в хранилище:
T Find(Func<T, bool> query);
Это все замечательно, пока я не попытаюсь использовать это с Linq2Sql, потому что linq2sql создает свои собственные объекты и в результате, когда я хочу вызвать:
context.visitors.FirstOrDefault(query);
существует несоответствие типов, потому что linq2sql ожидает функцию созданного им типа, а не функцию, которую я передаю.