powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Результат выполнения LINQ запроса
14 сообщений из 14, страница 1 из 1
Результат выполнения LINQ запроса
    #37113317
xpoft2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно вопрос возник вот в чем:
В результате выполнения LINQ запроса нам возвращается значение типа ObjectQuery(я так понимаю это необходимо для отложенных запросов), далее для полноценной работы с коллекцией лучше привести реальный результат к IBindingList:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public partial class MainWindow : Window
    {

        private IBindingList bl;

        public MainWindow()
        {
            InitializeComponent();
            GetPost();
        }

        private void GetPost()
        {
            using (priceEntities context = new priceEntities())
            {
                this.bl = ((from p in context.Prices select p) as IListSource).GetList() as IBindingList;

                this.grdMain.DataContext = this.bl;            
            }
        
        }
    }

И так, загвоздка в том что класс ObjectQuery реализует интерфейс IListSource, НО при рассмотрении его по "F12" там НЕТ определенного в нем метода GetList();

Как так? Почему в классе реализующем интерфейс нет метода определнного в этом интерфейсе?

ЗЫ: Вариант приходящий на ум, то что по F12 нам не показывают всех методов мягко сказать не вяжется, если и есть смысл в подобном сокрытии, то мне кажется не в этом случае.
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37113428
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LINQ запроса нам возвращается значение типа ObjectQuery что-то мне подсказывает, что в вашем случае речь идет скорее о IQueryable<Price>

и почему бы просто не написать grdMain.DataContext = context.Prices?
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37113465
Denis Gladkikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Extension methods , в целом обычные статические методы
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37113684
xpoft2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВестникLINQ запроса нам возвращается значение типа ObjectQuery что-то мне подсказывает, что в вашем случае речь идет скорее о IQueryable<Price>

и почему бы просто не написать grdMain.DataContext = context.Prices?

Ну в конкретном примере да, можно и так написать, а что если нужно получить не весь список данных из таблицы, как бывает значительно чаще?

Вопрос то состоит в другом, почему в классе реализующем интерфейс не определен метод этого интерфейса.
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37113698
Denis Gladkikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xpoft2010,

еще раз - это Extension methods, в целом обычные статические методы
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37113760
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что если нужно получить не весь список данных из таблицы, как бывает значительно чаще?
var q = context.Prices.Where(p => p.Discount < 10);
grid.DataContext = q;
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37113954
xpoft2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Gladkikhxpoft2010,

еще раз - это Extension methods, в целом обычные статические методы



я понял, но на msdn нет в extension методах GetList();, зато есть в Explicit interface implementations.
http://msdn.microsoft.com/en-us/library/system.data.objects.objectquery.aspx
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37114021
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetList() определен в ObjectQuery (не generic), см рефлектор
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37114359
xpoft2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВестникGetList() определен в ObjectQuery (не generic), см рефлектор

Я конечно все понимаю, но нету его там:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
namespace System.Data.Objects
{
    // Summary:
    //     Implements common functionality for queries against a conceptual model using
    //     both LINQ to Entities and System.Data.Objects.ObjectQuery<T>.
    public abstract class ObjectQuery : IOrderedQueryable, IQueryable, IEnumerable, IListSource
    {
        // Summary:
        //     Returns the command text for the query.
        //
        // Returns:
        //     A string value.
        public string CommandText { get; }
        //
        // Summary:
        //     Gets the object context associated with this object query.
        //
        // Returns:
        //     The System.Data.Objects.ObjectContext associated with this System.Data.Objects.ObjectQuery<T>
        //     instance.
        public ObjectContext Context { get; }
        //
        // Summary:
        //     Gets or sets a value that indicates whether the query plan should be cached.
        //
        // Returns:
        //     A value that indicates whether the query plan should be cached.
        public bool EnablePlanCaching { get; set; }
        //
        // Summary:
        //     Gets or sets how objects returned from a query are added to the object context.
        //
        // Returns:
        //     The query System.Data.Objects.MergeOption.
        public MergeOption MergeOption { get; set; }
        //
        // Summary:
        //     Gets the parameter collection for this object query.
        //
        // Returns:
        //     The parameter collection for this System.Data.Objects.ObjectQuery<T>.
        public ObjectParameterCollection Parameters { get; }

        // Summary:
        //     Executes the untyped object query with the specified merge option.
        //
        // Parameters:
        //   mergeOption:
        //     The System.Data.Objects.MergeOption to use when executing the query. The
        //     default is System.Data.Objects.MergeOption.AppendOnly.
        //
        // Returns:
        //     An System.Data.Objects.ObjectResult<T> that contains a collection of entity
        //     objects returned by the query.
        public ObjectResult Execute(MergeOption mergeOption);
        //
        // Summary:
        //     Returns information about the result type of the query.
        //
        // Returns:
        //     A System.Data.Metadata.Edm.TypeUsage value that contains information about
        //     the result type of the query.
        public TypeUsage GetResultType();
        //
        // Summary:
        //     Returns the commands to execute against the data source.
        //
        // Returns:
        //     A string that represents the commands that the query executes against the
        //     data source.
        [Browsable(false)]
        public string ToTraceString();
    }
}
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37114363
Denis Gladkikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xpoft2010,

вот этот extension method - http://msdn.microsoft.com/en-us/library/bb342261.aspx
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37114366
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37114367
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Gladkikhxpoft2010,

вот этот extension method - http://msdn.microsoft.com/en-us/library/bb342261.aspx речь идет о IListSource.GetList(), а не ToList(). и extension method не может использоваться как реализация интерфейса
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37114385
Denis Gladkikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВестникDenis Gladkikhxpoft2010,

вот этот extension method - http://msdn.microsoft.com/en-us/library/bb342261.aspx речь идет о IListSource.GetList(), а не ToList(). и extension method не может использоваться как реализация интерфейса
упс, в данном случае так и есть. а я что-то даже на пример не посмотрел, услышал вопрос, сразу почему-то подумал, что автор не видит extension метода.
...
Рейтинг: 0 / 0
Результат выполнения LINQ запроса
    #37114414
xpoft2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вестник

Спасибо, то что и было нужно.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Результат выполнения LINQ запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]