Доброе время суток.
Просматривал ролик на 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);
}
}
Уважаемые создатели библиотеки, а у вас эти тесты проходят нормально? Как решить это "зависание"?