powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не отрабатывает выборка NHibernate ICriteria в ASP.NET MVC
5 сообщений из 5, страница 1 из 1
Не отрабатывает выборка NHibernate ICriteria в ASP.NET MVC
    #39058094
Nikolay Kormushkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Начну с предисловия, что имеется функционал который производит корректно выборку с классом, создаю подобно ему выборку с другим классом и вызываю вслед за ним - не работает.

Имеется вот такой класс:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    public class SosResearchFile
    {
        public virtual string Id { get; set; }  
        public virtual int TypeId { get; set; }
        public virtual string ResearchId { get; set; }

        public virtual byte[] FileData { get; set; }
        public virtual string FileName { get; set; }
        public virtual string Description { get; set; }
         
        public virtual byte[] GetDecodedFile()
        {
            byte[] file;
            TsosGdisDecoder.Decode(FileData, out file);
            return file;
        }        
    }



Вот такой класс маппер:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    class SosResearchFileMap:ClassMap<SosResearchFile>
    {
        public SosResearchFileMap()
        {
            ReadOnly();
            Table("SOSRESEARCHFILE");
            Id(x => x.Id, "RFID");
            Map(x => x.TypeId, "RFTYPEID");
            Map(x => x.ResearchId, "RFRESEARCHID");
            Map(x => x.FileData, "RFFILEDATA");//.LazyLoad();
            Map(x => x.FileName, "RFFILENAME");
            Map(x => x.Description, "RFDESCRIPTION");
        }
    }



Имеются такие таблицы в БД:
Таблица SOSRESEARCHFILE
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
-------------------------------------------
SOSRESEARCHFILE
-------------------------------------------
RFID VARCHAR2(22) - PK
RFTYPEID NUMBER(9)
RFFILEDATA BLOB - Nullable
RFRESEARCHID VARCHAR2(22) - FK на RESID таблицы SOSRESEARCH
RFFILENAME VARCHAR2(240) - Nullable
RFDESCRIPTION VARCHAR2(120) - Nullable
------------------------------------------



Таблица SOSRESEARCHGRAPH
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
-------------------------------------------
SOSRESEARCHGRAPH
-------------------------------------------
RGRID VARCHAR2(22) - PK
RGRRESEARCHID VARCHAR2(22) - FK на RESID таблицы SOSRESEARCH
RGRPICTURE BLOB	 - Nullable
RGRDESCRIPTION VARCHAR2(120) - Nullable
RGRTYPE NUMBER(9)
RGRSRC NUMBER(9)
RGRINDEX NUMBER(9) - Nullable
RGRMAIN NUMBER(1) - Nullable
RGRMETAFILE BLOB - Nullable
------------------------------------------



Таблица SOSRESEARCH
Код: sql
1.
2.
3.
4.
5.
6.
------------------------------------------------
SOSRESEARCH
------------------------------------------------
RESID VARCHAR2(22) - PK
... набор остальных полей таблицы
----------------------------------------------



Для таблицы SOSRESEARCHGRAPH запрос на выборку отрабатывает корректно, выглядит вот так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
        public IList<SosResearchGraph> GetResearchGraphs(string researchId)
        {
            var criteria = _session.Instance.CreateCriteria(typeof(SosResearchGraph));
                criteria.Add(Restrictions.Eq("ResearchId", researchId));
            var pictures = criteria.List<SosResearchGraph>();
            return pictures;
        }	



а для таблицы SOSRESEARCHFILE такой-же посути запрос не отрабатывает:
Код: c#
1.
2.
3.
4.
5.
6.
7.
        public IList<SosResearchFile> GetResearchFiles(string researchId)
        {
            var criteria = _session.Instance.CreateCriteria(typeof(SosResearchFile));
            criteria.Add(Restrictions.Eq("ResearchId", researchId));
            var files = criteria.List<SosResearchFile>();
            return files;
        }



С случае для запроса к SosResearchFile даже не возникает NHibernate-запроса. Т.е. если смотреть в Nhibernate-лог, то для первого варианта перед отработкой метода и после него в логе появляются 2 NHibernate запроса и выборка производится, а во втором случае этих запросов в логе не возникает. Т.е. чего-то не хватает для того чтобы отработал NHibernate для второго класса (где-то, что-то не прописанов касаемо именно нового класса SosResearchFile, в плане маппинга может не так что-то, в силу чего NHibernate не создаёт запроса и не скидывает в лог информацию и т.д.) или не правильные сущности - но всё проверил в плане правильности имён таблиц и полей.

Оговорюсь сразу, что проект разрабатывался не мной и мне приходится разбираться в чужом коде, да и с MVC был до этого не знаком.

Т.е. где-то, что-то не доделано, а что не могу понять, бьюсь уже несколько дней. Помогите пожалуйста полностью понять весь процесс маппинга и разобраться с проблемой. Если интересуют другие данные по коду, настройки конфигов (Web.config - по теме, без паролей конечно и строк подключения) и т.д. приведу без проблем, наверняка того, что я выложил будет не достаточно. Прошу помощи экспертов, заранее благодарен за помощь.
...
Рейтинг: 0 / 0
Не отрабатывает выборка NHibernate ICriteria в ASP.NET MVC
    #39059384
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kormushkin,

Бывало такое когда не может найти маппинг, но у меня был xml маппинг,
А класс SosResearchFileMap у тебя приватный? Если да то попробуй сменить на паблик
...
Рейтинг: 0 / 0
Не отрабатывает выборка NHibernate ICriteria в ASP.NET MVC
    #39059387
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и проверь, точно ли этот SosResearchFileMap попадает в гибер, может маппинги твои лежат в разных сборках, из одной подтянул, а из другой нет
...
Рейтинг: 0 / 0
Не отрабатывает выборка NHibernate ICriteria в ASP.NET MVC
    #39059498
Nikolay Kormushkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maratossNikolay Kormushkin,

Бывало такое когда не может найти маппинг, но у меня был xml маппинг,
А класс SosResearchFileMap у тебя приватный? Если да то попробуй сменить на паблик

Спасибо за совет - проблема была именно в этом! Конструктор мапкласса не был public:
public class SosResearchFileMap:ClassMap<SosResearchFile>
{...

Очень вам благодарен!!!
...
Рейтинг: 0 / 0
Не отрабатывает выборка NHibernate ICriteria в ASP.NET MVC
    #39059503
Nikolay Kormushkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Nikolay Kormushkin]maratossNikolay Kormushkin,
...Конструктор мапкласса не был public...

Вернее не конструктор, а сам мап-класс
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не отрабатывает выборка NHibernate ICriteria в ASP.NET MVC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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