У меня есть ситуация, когда я хочу получить данные из базы данных и назначить их всплывающим подсказкам каждой строки в элементе управления ListView в WPF. (Я использую C # 4.0.) Поскольку я раньше такого не делал, я запустил небольшое, более простое приложение, чтобы изложить идеи до того, как я попытаюсь использовать их в своем основном приложении WPF.
Одной из моих проблем является количество данных, которые потенциально могут быть получены. По этой причине я подумал, что буду использовать LINQ to SQL, который использует отложенное выполнение. Я подумал, что это поможет, а не сбрасывает данные, пока пользователь не наведет указатель мыши на соответствующую строку. Для этого я собираюсь использовать отдельную функцию для присвоения значений подсказке из базы данных, передаваемой по параметрам, которые мне нужно передать соответствующим хранимым процедурам. Я делаю 2 запроса, используя LINQ to SQL, используя 2 разные хранимые процедуры и назначая результаты для 2 разных DataGrids.
Несмотря на то, что я знаю, что LINQ to SQL использует отложенное выполнение, я начинаю задумываться, может ли какой-то код, который я пишу, разрушить все мои намерения использовать LINQ to SQL. Например, при тестировании в моем более простом приложении я выбираю несколько различных значений, чтобы увидеть, как это работает. Один выбор значений не вернул данные, так как для данных параметров не было данных. Я подумал, что это может привести к путанице среди пользователей, поэтому я решил проверить свойство Count в списке, который я назначаю при запуске метода, связанного с DBML (связанного с хранимой процедурой). Подумав об этом, я думаю, что LINQ необходимо будет выполнить запрос, чтобы получить результат для свойства Count. Я не прав?
Если я исключу вызов свойства Count в списке, мне все еще будет интересно, не возникнет ли у меня проблема; Если LINQ все еще может быть вызван, потому что я связываю подсказку с элементом управления через вызов функции?