Oracle.ManagedDataAccess.Client и linq2db
От: Berill Азербайджан  
Дата: 06.09.15 21:33
Оценка:
Доброе время суток.
Просматривал ролик на youtube "LINQ CRUD Operations by linq2db"
Делал все также как и в ролике, за исключением того, что использовал только Oracle.

Все тесты проходят нормально, кроме теста InsertWithIdentityTest. Тест просто зависает, до строчки вывода на консоль не доходит.
Скачал с гитхаба исходики этого примера. Запустил, все работает, зависаний нет.
Но тут одна деталь. Разница версий пакетов.

Мой packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="linq2db" version="1.0.7.2" targetFramework="net45" />
  <package id="linq2db.Oracle.managed" version="1.0.7.2" targetFramework="net45" />
  <package id="linq2db.t4models" version="1.0.7.2" targetFramework="net45" />
  <package id="NUnit" version="2.6.4" targetFramework="net45" />
  <package id="Oracle.ManagedDataAccess" version="12.1.022" targetFramework="net45" />
</packages>


https://github.com/linq2db/examples/blob/master/Video/LinqCrudOperations/LinqToDBCrudDemo/packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="FirebirdSql.Data.FirebirdClient" version="4.6.2.0" targetFramework="net451" />
  <package id="linq2db" version="1.0.7.1" targetFramework="net451" />
  <package id="linq2db.Access" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.DB2" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.Firebird" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.Informix" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.MySql" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.Oracle.managed" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.PostgreSQL" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.SqlCe" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.SQLite" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.SqlServer" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.Sybase" version="1.0.7" targetFramework="net451" />
  <package id="linq2db.t4models" version="1.0.7.1" targetFramework="net451" />
  <package id="Microsoft.SqlServer.Compact" version="4.0.8876.1" targetFramework="net451" />
  <package id="MySql.Data" version="6.9.6" targetFramework="net451" />
  <package id="Npgsql" version="2.2.5" targetFramework="net451" />
  <package id="NUnit" version="2.6.4" targetFramework="net451" />
  <package id="odp.net.managed" version="121.1.2" targetFramework="net451" />
  <package id="System.Data.SQLite.Core" version="1.0.96.0" targetFramework="net451" />
</packages>


Выделил основное (как мне кажется)различие.

Погуглил... и ничего не нашел по связке linq2db + Oracle.ManagedDataAccess... были только пара сообщений, что не получается генерация классов с использованием Т4 шаблонов и этой связки...

В таблицу данные записываются. (Проверял: сперва тест на создание таблиц (он удаляет и создает их заново), потом InsertWithIdentity. В TOAD'е вижу вставленную строчку)

        [Test]
        public void InsertWithIdentityTest([Values(ProviderName.Oracle)] string configString)
        {
            using (var db = new DataConnection(configString))
            {
                var identity = db.GetTable<TestTable>()
                    .InsertWithIdentity(() => new TestTable
                    {
                        Name = "Crazy Frog",
                        CreatedOn = Sql.CurrentTimestamp
                    });

                Console.WriteLine(identity);
            }
        }

        [Test]
        public void InsertWithIdentityTest2([Values(ProviderName.Oracle)] string configString)
        {
            using (var db = new DataConnection(configString))
            {
                var identity = db
                    .InsertWithIdentity(new TestTable
                    {
                        Name = "Crazy Frog"
                    });

                Console.WriteLine(identity);
            }
        }


Уважаемые создатели библиотеки, а у вас эти тесты проходят нормально? Как решить это "зависание"?
Отредактировано 07.09.2015 6:51 Berill . Предыдущая версия . Еще …
Отредактировано 07.09.2015 6:40 Berill . Предыдущая версия .
linq2db oracle.manageddataaccess
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.