powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / работа oracle.entitycoreframeworkcore
15 сообщений из 15, страница 1 из 1
работа oracle.entitycoreframeworkcore
    #39959328
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
вопрос такой.
не очень понимаю, как работает AppDBContext:DbContext в моей программе.
бд - Оракл
описание DBSET
Код: c#
1.
2.
3.
4.
5.
6.
public DbSet<mCount> MQ { get; set; }
        public class mCount {
            [Key]
            public int VAL { get; set; }
            public string NAME { get; set; }
        }



Код: 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.
public MockStatus(AppDBContext appdb)
        {
            this.appdb = appdb;
        }

public IEnumerable<Status> AllStatus
        {
            get
            {
               List<Status> LStatus = new List<Status>();
               
               
               var a = appdb.MQ.FromSql("Select count(*) VAL,'Показатель' NAME from mytable ").ToList();

                foreach (var b in a)
                {
                    LStatus.Add(new MisStatus { ValueName = b.NAME, ValueInfo = b.VAL.ToString() });
                }

                a = appdb.MQ.FromSql("Select count(*) VAL,'1' NAME from mytable ").ToList();

                foreach (var b in a)
                {
                    if (Convert.ToInt32(b.NAME.Trim()) == 1)
                    {
                      LStatus.Add(new MisStatus { ValueName = "Тест"', ValueInfo = b.VAL.ToString() });
                    }

                }
              return LStatus;
            }
}



дело в том, что периодически возникает ошибка на пункте

Код: c#
1.
    if (Convert.ToInt32(b.NAME.Trim()) == 1)


что не верный формат строки.
когда идешь дебагером, то видишь, что в a есть значение из предыдущего результата.
не совсем понимаю, в чем причина такого поведения
Код: c#
1.
appdb.MQ.FromSql 

и как поступить?
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959351
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, очень плохая идея делать IO-операции в свойствах, они должны быть в методах.

Во-вторых, почему используется SQL, а не Linq?
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959453
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно только
Код: c#
1.
2.
[Key]
public int VAL { get; set; }


где VAL это count(*) это уже какая-то лютая жесть. Меня удивляет, что этот код у тебя вообще хоть как-то работает.

На самом деле у тебя count(*) возвращает одно и то же значение, а поскольку он объявлен как [Key], то это рассматривается как одна и та же сущность, вот она в контексте и остается прежней.
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959460
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK,

Я бы мог посоветовать, как это заставить работать. Но советовать, как заставить работать такое это просто оказывать медвежью услугу.
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959513
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

на самом деле, я разбираюсь как в принципе работать с этим.
потому и спрашиваю, отчего так происходит.
почему используется fromsql - только для тестирования.

Код: c#
1.
2.
[Key]
public int VAL { get; set; }



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

вопрос как раз и заключается, отчего оно то работает, то не работает.
если можете подсказать как правильно, буду признателен.
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959519
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK
если можете подсказать как правильно, буду признателен.

Вот, реально, даже не знаю, что тут и посоветовать. Наверное, для начала почитать хоть что-нибудь про реляционные БД, чтобы понять, что такое сущность и что такое её ключ.
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959540
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK
почему используется fromsql - только для тестирования.
Что именно ты хочешь протестировать?

HANK
если можете подсказать как правильно, буду признателен.
Прочитать документацию по EF и сделать так, как там написано. Завести сущности, использовать Linq, получать результат (типа этого с Count(*)) в проекцию.

А здесь сейчас непонятно что.
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959551
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

потестировать технологию подключения через dbcontext, т.к. ранее не использовал данный механизм.

у меня возникает такой вопрос.
в oracle есть link из одной БД в другую.
каким образом мне сделать запрос к таблице через линк с использованием Linq?

например я делаю запрос к таблице
Код: plsql
1.
select * from table@bd.us.oracle.com 
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959559
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959566
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK
потестировать технологию подключения
Подключение ничем не отличается, в общем-то, строка подключения всё та же самая.
А попытки делать SQL-запросы - это уже явно не тестирование подключения. )
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959570
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

+ да через него пробовал - оно работает.
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959586
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK,

Если хочешь просто протестировать коннекшен, то достаточно такого:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
try
{
    var con = myDbContext.Database.Connection;
    con.Open();
    con.Close();
}
catch(Exception e)
{
    logger.LogError("С коннекшеном что-то не так.", e);
}
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959696
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

хочется ведь увидеть какие нибудь данные из бд, в т.ч. и кодировки верно ли отображаются или нет.
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39959730
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK
fkthat,

хочется ведь увидеть какие нибудь данные из бд, в т.ч. и кодировки верно ли отображаются или нет.

Ну это ведь за скоупом "протестировать соединение". Запроси по-нормальному сущность какую-нибудь. Что это за хрень с ключом count(*)? Волосы ведь на голове шевелятся от одного только вида этого.
...
Рейтинг: 0 / 0
работа oracle.entitycoreframeworkcore
    #39972120
MsGuns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стесняюсь спросить: а что, в уракле есть только таблицы ? Или БД под жестким замком зверя-админа ? И ничего не остается как маппить только тэйблы ? Иначе откуда этот лютый костыль в виде агрегатной колонки , маппированной на модель как primary key ?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / работа oracle.entitycoreframeworkcore
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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