|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
Добрый день. Как можно вытащить из базы значение и присвоить его переменной. Модель DatabaseFirst. Есть класс DataAccessLayer в нем есть метод, который выдергивает всю таблицу. public List<ContactPerson> GetContactPerson(string RegCardN) { // Check we have an ObjectContext using (OMP13Entities entities = new OMP13Entities()) { // Create a query from the entityset ObjectQuery<ContactPerson> contactperson = entities.ContactPerson; // Create detached entities contactperson.MergeOption = MergeOption.NoTracking; // Define the query var query = from c in contactperson where (c.RegCardN == RegCardN) select c; // Execute the query List<ContactPerson> results = query.ToList(); // Return the results in a List return results; } } Из консольного приложения хочу вывести определенный элемент Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Вываливает exception Cannot convert type 'System.Collections.Generic.List<DAL.ContactPerson>' to 'DAL.ContactPerson' ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 14:30 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
BKV88, Точнее надо вот так Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 14:32 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
BKV88, Ничего странного не замечаете? Код: c# 1.
Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 14:33 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
Axeleron, метод GetContactPerson возвращает List<ContactPerson> а класс ContactPerson DAL.ContactPerson Так я вроде преобразовываю, разве нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 14:52 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
Не знаю на сколько это правильно, но все работает вот так Код: c# 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 15:10 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
BKV88Так я вроде преобразовываю, разве нет? Нет, в коде выше возвращается коллекция экземпляров ContactPerson, а преобразовывается в единичный экземпляр ContactPerson. BKV88Не знаю на сколько это правильно, но все работает вот так Предполагается, что у каждого экземпляра ContactPerson значение RecCardN является уникальным? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 15:23 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
Axeleron, Да это уникальное значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 15:27 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
BKV88, Тогда в коде выше просто имело смысл поменять код так - и все бы заработало: Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 15:34 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
Axeleron, Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 15:41 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
В общем случае, запросы linq оборачивать методами DAL - это вредительство. Такой подход годится только для однопользовательских приложений. Если создавать контекст для каждого вызова метода DAL - будет трудно организовать транзакции (потребуется MSDTC) Конкретно для web-приложений надо заранее предусматривать стратегии - автоматически одна транзакция на один запрос, ручное управление транзакциями в запросе. EF- это сам по себе интерфейс к БД, не надо над ним ничего придумывать. Следующий этап в выделении структуры программы - предустановленные функции чтения, принимающие и возвращающие IQueryable<Название класса из модели EF> и экземпляр контекста. Таким образом появляется возможность повторно использовать функции, генерируя при этом единый запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2016, 11:52 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
B7_Ruslan В общем случае , запросы linq оборачивать методами DAL - это вредительство. я бы сказал в некоторых частных случаях , например, когда требуется несколько разных контекстов БД B7_RuslanТакой подход годится только для однопользовательских приложений прекрасно работает и для многопользовательских приложений B7_RuslanЕсли создавать контекст для каждого вызова метода DAL ... а зачем это делать? пусть все репо работают с одним контекстом ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2016, 14:45 |
|
Доступ к элементу EF
|
|||
---|---|---|---|
#18+
B7_RuslanEF- это сам по себе интерфейс к БД, не надо над ним ничего придумывать не всегда "не надо ничего придумывать". например, винформз приложение работает с хранилищем в виде xml-файла. аналогичная версия приложения, только веб - с БД. оформленный в виде репозиториев DAL разный, а датасервисы (там, где бизнес-логика) - одни и те же. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2016, 18:11 |
|
|
start [/forum/topic.php?fid=17&msg=39290390&tid=1349371]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 298ms |
0 / 0 |