Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
prog13
Ефрейтор
177 / 148 / 6
Регистрация: 20.07.2009
Сообщений: 226
1

EntityFramework 5.0 и partial property и MySql

20.03.2015, 21:10. Просмотров 338. Ответов 4
Метки нет (Все метки)

Всем привет.
База MySql, EntityFramework 5.0.
Есть несколько таблиц с названием картинки. В коде c# прописываю пути к этим картинкам с помощью свойства в частичном классе.

partial class restaurant
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public partial class t_restaurant    
{
private const string LOGOPATH = "../Images/Restaurant/{0}/{1}"; //0-id ресторана, 1-картинка
         public string LogoFullPath
        {
            get
            {
                return string.IsNullOrEmpty(this.logo)
                        ? string.Empty
                        : string.Format(LOGOPATH, this.id, this.logo);
            }
        }
}
linq запрос
C#
1
2
3
4
5
6
7
8
from r in db.restaurant
select new RestaurantDetailsModel()
                    {
                        ID = r.id,
                        Name = r.name,
                        Title = r.title,
                        Logo =   r.LogoFullPath
                    }
ошибка
Указанный член типа "LogoFullPath" не поддерживается в выражениях LINQ to Entities. Поддерживаются только инициализаторы, члены сущности и свойства навигации сущности.

естественно всё решается с помощью .ToList() но что-то не хочется всю таблицу грузить в память а тогда из нее селектить.
Посоветуйте как выйти с такой ситуации
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2015, 21:10
Ответы с готовыми решениями:

EntityFramework: Custom setter/getter for EntityObject property
Почитав Интернету - понял, довольно таки нетривиальная задача для реализации сабджа. Поделитесь,...

EntityFramework, Navigation property: реализовать посты и комментарии к ним
пытаюсь реализовать посты и комменты к ним. соответственно два класса public class Post {...

Сделать редирект с partial view to (not partial) view?
Здравствуйте, форумчане! Никак не получается сделать: есть что-то отдаленно напоминающее...

Ошибка при установке Mysql.Data.EntityFramework core
При установке Mysql.Data.EntityFramework core через nuget выдает ошибку Failed to add reference to...

Как правильно настроить EntityFramework Core для работы с MySQL?
Подскажите, как правильно настроить Entity Framework Core для работы с MySQL. Как правильно...

4
sau
2199 / 1744 / 302
Регистрация: 22.07.2011
Сообщений: 6,603
Завершенные тесты: 1
20.03.2015, 21:15 2
И как приведенный код связан с текстом ошибки ?
0
prog13
Ефрейтор
177 / 148 / 6
Регистрация: 20.07.2009
Сообщений: 226
20.03.2015, 21:33  [ТС] 3
если я linq изменяю на
C#
1
2
3
4
5
6
7
8
from r in db.restaurant
select new RestaurantDetailsModel()
                    {
                        ID = r.id,
                        Name = r.name,
                        Title = r.title,
                        Logo =   string.IsNullOrEmpty(r.logo)? "": "../Images/Restaurant/" + r.id + "/" + r.logo
                    }
запрос выполняется без ошибок
0
sau
2199 / 1744 / 302
Регистрация: 22.07.2011
Сообщений: 6,603
Завершенные тесты: 1
20.03.2015, 21:49 4
Цитата Сообщение от prog13 Посмотреть сообщение
естественно всё решается с помощью .ToList() но что-то не хочется всю таблицу грузить в память а тогда из нее селектить.
1. Потому что данный запрос EF должен спроецировать на T-SQL и со сложными свойствами типа LogoFullPath будут проблемы , ибо его не отразить на T-SQL инструкции или поля в БД.
2. Тут в любом случае вся таблица будет загружена , ибо нет никаких иных условий , разница лишь в том , что либо это будет в момент вызова ToList() , либо в любом другом месте при первой попытке получить результат запроса.
0
prog13
Ефрейтор
177 / 148 / 6
Регистрация: 20.07.2009
Сообщений: 226
20.03.2015, 22:37  [ТС] 5
то есть так и выходить из ситуации? только можно добавить чуточку условий....
C#
1
2
3
4
5
6
7
8
from r in db.restaurant.where(s=>s.some_condition).ToList()
select new RestaurantDetailsModel()
                    {
                        ID = r.id,
                        Name = r.name,
                        Title = r.title,
                        Logo =   r.LogoFullPath
                    }
0
20.03.2015, 22:37
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2015, 22:37

Property Get и Property Let Странное поведение
Здравствуйте, Господа. Сразу к делу. Написал UserControl, объявил в нём весьма безобидные свойства:...

Partial-классы
Если у меня есть partial-класс A и два .cs файлика, на которые он разбит, то как каждый из них...

Partial View
Доброго времени суток! Разбираюсь с MVC и возникла потребность в динамической подгрузке частичных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru