<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Форум 'LINQ to DB' на RSDN</title>
    <link>http://rsdn.org/Forum/prj.rfd/</link>
    <description>Обсуждение linq2db и bltoolkit</description>
    <category>prj</category>
    <category>rfd</category>
    <language>ru-ru</language>
    <copyright>Copyright ©, RSDN, 2001-2007</copyright>
    <webMaster>forum@rsdn.org</webMaster>
    <generator>RSDN RSS Generator 1.3</generator>
    <image>
      <url>http://rsdn.org/rsdn.gif</url>
      <title>RSDN</title>
      <link>http://rsdn.org</link>
    </image>
    <lastBuildDate>Mon, 27 Apr 2026 10:00:25 GMT</lastBuildDate>
    <ttl>5</ttl>
	<item>
		<title>Маппинг двух столбцов в одное свойство и из свойства в два с</title>
		<link>http://rsdn.org/Forum/prj.rfd/8710229.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8710229</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8710229</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8710229</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8710229</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8710229</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;У сущности есть свойство абстрактного типа&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;class&lt;/span&gt; Entity
{
&lt;span class='kw'&gt;public&lt;/span&gt; IForeign Foreign {&lt;span class='kw'&gt;get&lt;/span&gt;;init;}
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Сущность должна отображаться на таблицу с двумя полями&lt;br /&gt;
fData int &amp;mdash; внутренние данные&lt;br /&gt;
fType int &amp;mdash; интерпретация типа&lt;br /&gt;
Как сделать маппинг двух полей на одно свойство, чтобы в зависимости от поля fType создавался тот или иной конкретный объект? fData &amp;mdash; общие для всех IForeign данные (через конструктор или свойство инициализации).&lt;br /&gt;
Ну и в обратную сторону на таблицу&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Tue, 12 Mar 2024 08:19:45 GMT</pubDate>
		
			<author>Naf2000 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Insert, BulkCopy, between - SQLite неправильная работа</title>
		<link>http://rsdn.org/Forum/prj.rfd/8629491.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8629491</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8629491</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8629491</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8629491</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8629491</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет всем,&lt;br /&gt;
&lt;br /&gt;
 Обнаружил, что метод Insert при вставке записи в таблицу с автоинкрементным ключем и заданным значением все равно вставляет новый ключ.&lt;br /&gt;
Попробовал обойти и вставлять с помощью&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;Connection.BulkCopy(new BulkCopyOptions() { KeepIdentity = true }, result);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Записи вставились как надо, но обнаружилась следующая ошибка. При вставке через BulkCopy записи с типом дата вставляются в формате "2023-10-01" и в этом случае&lt;br /&gt;
при запросе between '2023-10-01' and '2023-10-30' записи с датой 2023-10-01 в интервал не попадают. &lt;br /&gt;
А вот если даты будут в базе в формате "2023-10-01 00:00:00" (просто Insert их в таком виде и вставляет) то тогда попадают. &lt;br /&gt;
Причем выполнение запроса вручную возвращает все записи, а в программе их уже нет.&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Thu, 02 Nov 2023 20:21:51 GMT</pubDate>
		
			<author>bisoft &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Ассоциации "через точку"</title>
		<link>http://rsdn.org/Forum/prj.rfd/8530640.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8530640</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8530640</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8530640</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8530640</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8530640</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Имеем систему классов:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;    &lt;span class='kw'&gt;class&lt;/span&gt; Ref&amp;lt;TEntity&amp;gt;
        &lt;span class='kw'&gt;where&lt;/span&gt; TEntity : Entity
    {
        &lt;span class='kw'&gt;public long&lt;/span&gt; ID { &lt;span class='kw'&gt;get&lt;/span&gt;; init; }
        &lt;span class='kw'&gt;public&lt;/span&gt; TEntity Data =&amp;gt; &lt;span class='kw'&gt;default&lt;/span&gt;!;
    }

    &lt;span class='kw'&gt;abstract class&lt;/span&gt; Entity 
    {        
        [PrimaryKey, Identity]
        &lt;span class='kw'&gt;public long&lt;/span&gt; ID { &lt;span class='kw'&gt;get&lt;/span&gt;; init; }
    }        
    
    &lt;span class='kw'&gt;abstract class&lt;/span&gt; Catalog : Entity
    {
        [Column]
        &lt;span class='kw'&gt;public string&lt;/span&gt; Name { &lt;span class='kw'&gt;get&lt;/span&gt;; init; } = &lt;span class='kw'&gt;default&lt;/span&gt;!;
    }

    [Table(&lt;span class='str'&gt;"Persons"&lt;/span&gt;)]
    &lt;span class='kw'&gt;class&lt;/span&gt; Person: Catalog
    {
    }        

    [Table(&lt;span class='str'&gt;"Storages"&lt;/span&gt;)]
    &lt;span class='kw'&gt;class&lt;/span&gt; Storage : Catalog
    {
        &lt;span class='kw'&gt;public&lt;/span&gt; Ref&amp;lt;Person&amp;gt; Manager { &lt;span class='kw'&gt;get&lt;/span&gt;; init; } = &lt;span class='kw'&gt;default&lt;/span&gt;!;
        &lt;span class='com'&gt;//public Person ManagerData { get; init; } = default!;&lt;/span&gt;
    }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Ref&amp;lt;TEntity&amp;gt; &amp;mdash; оболочка для агрегации и внешнего ключа.&lt;br /&gt;
Однако выдает ошибку, что не может разобрать написанное:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;'s.Manager.Data.Name' cannot be converted to SQL.&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Вот код:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;            &lt;span class='kw'&gt;var&lt;/span&gt; builder = &lt;span class='kw'&gt;new&lt;/span&gt; FluentMappingBuilder(context.MappingSchema);
            builder.Entity&amp;lt;Storage&amp;gt;().Property(s =&amp;gt; s.Manager.ID).HasColumnName(nameof(Storage.Manager));
            builder.Entity&amp;lt;Storage&amp;gt;().Association(s =&amp;gt; s.Manager.Data, (s, p) =&amp;gt; s.Manager.ID == p.ID);
            builder.Build();
            &lt;span class='kw'&gt;var&lt;/span&gt; query = context.GetTable&amp;lt;Storage&amp;gt;().Select(s =&amp;gt; s.Manager.Data).Select(p =&amp;gt; &lt;span class='kw'&gt;new&lt;/span&gt; { p.Name });&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Стоит раскомментировать //public Person ManagerData { get; init; } = default!;&lt;br /&gt;
и всюду заменить Manager.Data на ManagerData как всё работает.&lt;br /&gt;
&lt;br /&gt;
Можно в принципе использовать ассоциации, написанные "через вторую точку": s =&amp;gt; s.Manager.Data вопрос?&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Mon, 22 May 2023 07:12:13 GMT</pubDate>
		
			<author>Naf2000 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Customization with assembly</title>
		<link>http://rsdn.org/Forum/prj.rfd/8503451.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8503451</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8503451</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8503451</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8503451</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8503451</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Доброе время суток.&lt;br /&gt;
&lt;br /&gt;
Столкнулся с проблемой при использовании linq2db.cli для генерации моделей данных.&lt;br /&gt;
&lt;br /&gt;
Все делаю как описано тут (&lt;a class="m" href="https://linq2db.github.io/articles/CLI.html" target="_blank"&gt;https://linq2db.github.io/articles/CLI.html&lt;/a&gt;).&lt;br /&gt;
Пробую вариант кастомизации с отдельным assembly. Создал отдельный проект библиотеки (TargetFramework netcoreapp3.1).&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								Lib csproj			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;Project Sdk="Microsoft.NET.Sdk"&amp;gt;

    &amp;lt;PropertyGroup&amp;gt;
        &amp;lt;TargetFramework&amp;gt;netcoreapp3.1&amp;lt;/TargetFramework&amp;gt;
        &amp;lt;LangVersion&amp;gt;9&amp;lt;/LangVersion&amp;gt;
        &amp;lt;CopyLocalLockFileAssemblies&amp;gt;true&amp;lt;/CopyLocalLockFileAssemblies&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;

    &amp;lt;ItemGroup&amp;gt;
      &amp;lt;PackageReference Include="linq2db.Tools" Version="5.1.1" /&amp;gt;
    &amp;lt;/ItemGroup&amp;gt;  
    

&amp;lt;/Project&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
Добавил "пустой" Interceptor&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								Код			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;pre class='c'&gt;&lt;code&gt;public class MyScaffoldInterceptor : ScaffoldInterceptors
{
    private ScaffoldOptions Options { get; }

    public MyScaffoldInterceptor(ScaffoldOptions options)
    {
        this.Options = options;
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
Компиляция успешная, все нужные файлы в "bin\Debug\netcoreapp3.1" есть, включая &lt;b&gt;DataModelsCustomization.deps.json&lt;/b&gt;. Идем дальше.&lt;br /&gt;
&lt;br /&gt;
Создал консольное приложение, добавил &lt;b&gt;Project Reference&lt;/b&gt; на библиотеку с кастомизациями.&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								App csproj			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;pre class='c'&gt;&lt;code&gt;&amp;lt;Project Sdk="Microsoft.NET.Sdk"&amp;gt;

  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;OutputType&amp;gt;Exe&amp;lt;/OutputType&amp;gt;
    &amp;lt;TargetFramework&amp;gt;netcoreapp3.1&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;LangVersion&amp;gt;9&amp;lt;/LangVersion&amp;gt;    
  &amp;lt;/PropertyGroup&amp;gt;

  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;

  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;PackageReference Include="linq2db" Version="5.1.1" /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;

  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;ProjectReference Include="..\DataModelsCustomization\DataModelsCustomization.csproj" /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;

&amp;lt;/Project&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
Создал каталог DataModels внутри проекта консольного приложения. Поместил туда &lt;b&gt;database.json&lt;/b&gt; файл&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								database.json			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;pre class='c'&gt;&lt;code&gt;{
  "general": {
        "provider": "SqlServer",
        "connection": "&amp;lt;my-connection-string&amp;gt;",        
        "overwrite": true
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
В терминале выполняю команду:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;D:\PROJECTS\Examples\Linq2Db.NetCore\Linq2Db.NetCore\DataModels&amp;gt; dotnet linq2db scaffold -i database.json --customize ..\bin\Debug\netcoreapp3.1\DataModelsCustomization.dll&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
В результате получаю ошибку:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;AssemblyResolve path: D:\PROJECTS\Examples\Linq2Db.NetCore\Linq2Db.NetCore\bin\Debug\netcoreapp3.1&lt;br /&gt;
Unhandled exception: DependencyContext.Load cannot load interceptor assembly&lt;br /&gt;
   at LinqToDB.CommandLine.ScaffoldCommand.SetupInterceptorsDependencyResolver(String assemblyFolder, Assembly interceptorsAssembly)&lt;br /&gt;
   at LinqToDB.CommandLine.ScaffoldCommand.LoadInterceptorsFromAssembly(String assemblyPath, ScaffoldOptions options)&lt;br /&gt;
   at LinqToDB.CommandLine.ScaffoldCommand.LoadInterceptors(String interceptorsPath, ScaffoldOptions options)&lt;br /&gt;
   at LinqToDB.CommandLine.ScaffoldCommand.Execute(CliController controller, String[] rawArgs, Dictionary`2 options, IReadOnlyCollection`1 unknownArgs)&lt;br /&gt;
   at LinqToDB.CommandLine.CliController.Execute(String[] args)&lt;br /&gt;
   at LinqToDB.Tools.Program.Main(String[] args)&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
В каталоге "bin\Debug\netcoreapp3.1" нет только одного файла: &lt;b&gt;DataModelsCustomization.deps.json&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Как только я его копирую &lt;b&gt;вручную&lt;/b&gt; из каталога куда складывается результат сборки библиотеки "DataModelsCustomization\bin\Debug\netcoreapp3.1", все проходит успешно, модели генерируются. Пока что никак не могу найти способа его автоматического копирования при сборке проекта.&lt;br /&gt;
&lt;br /&gt;
Пробовал добавлять "&amp;lt;CopyLocalLockFileAssemblies&amp;gt;true&amp;lt;/CopyLocalLockFileAssemblies&amp;gt;" в файл проекта приложения, не помогло.&lt;br /&gt;
&lt;br /&gt;
Можно конечно выполнить терминальную команду, находясь в каталоге библиотеки&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;D:\PROJECTS\Examples\Linq2Db.NetCore\DataModelsCustomization&amp;gt; dotnet linq2db scaffold -i database.json --customize bin\Debug\netcoreapp3.1\DataModelsCustomization.dll&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Но я хочу, чтобы модели данных были в проекте приложения. Или действительно надо генерировать модели в проекте с кастомизациями? В документации (&lt;a class="m" href="https://linq2db.github.io/articles/CLI.html" target="_blank"&gt;https://linq2db.github.io/articles/CLI.html&lt;/a&gt;) об этом ничего не сказано.&lt;br /&gt;
Как вариант, еще можно добавить поле &lt;b&gt;output&lt;/b&gt; в json файл.&lt;br /&gt;
&lt;br /&gt;
Буду благодарен, если объясните что я делаю не так.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPD:&lt;/b&gt;&lt;br /&gt;
Убрал Project Reference на библиотеку с кастомизацией и выполнил команду&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;dotnet linq2db scaffold -i database.json --customize ..\..\DataModelsCustomization\bin\Debug\netcoreapp3.1\DataModelsCustomization.dll&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Может именно такая команда и имелась в виду в документации?!&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Wed, 12 Apr 2023 08:25:12 GMT</pubDate>
		
			<author>Berill &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Вычисляемое свойство</title>
		<link>http://rsdn.org/Forum/prj.rfd/8114364.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8114364</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8114364</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8114364</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8114364</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8114364</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Допустим в таблице есть строковые поля X, Y.&lt;br /&gt;
Сами по себе они не отображаются в свойства класса.&lt;br /&gt;
А хочется, чтобы в свойство MyValue объекта класса можно было передать значение некоторого выражения из них&lt;br /&gt;
например, описанного так:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;Expression&amp;lt;Func&amp;lt;MyEntity,&lt;span class='kw'&gt;string&lt;/span&gt;&amp;gt;&amp;gt; expr = (e) =&amp;gt; e.X+&lt;span class='str'&gt;":"&lt;/span&gt;+e.Y;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Чтобы каждый раз не писать вручную:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;.Select(t =&amp;gt; &lt;span class='kw'&gt;new&lt;/span&gt; MyEntity(t.Id) {Value=t.X+&lt;span class='str'&gt;":"&lt;/span&gt;+t.Y})&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Ну вот как будто с этим выражением есть computed field соответствующее свойству поля.&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Sun, 17 Oct 2021 19:13:10 GMT</pubDate>
		
			<author>Naf2000 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Something's wrong</title>
		<link>http://rsdn.org/Forum/prj.rfd/8102428.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8102428</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8102428</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8102428</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8102428</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8102428</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Ок, допустим я среднестатистический senior, для которого технические аргументы при выборе инструмента работы с базой имеют значение. Я открываю документацию linq2db и мне все нравится &amp;mdash; гибкость, расширяемость; то, что решается конкретная задача сделать статически типизированный sql, который ещё и composable и прочие хорошие слова; а нерешимая на практике задача, например, по достижению persistence ignorance, не решается, что даёт основание подозревать, что авторы что-то понимают в жизни.&lt;br /&gt;
Я делаю POC по переносу самых заковыристых кусков проекта (где запрос собирался путём склеивания строк) на linq2db и меня все устраиваетустраивает: &lt;a class="m" href="http://blog.linq2db.com/2016/06/how-to-teach-linq-to-db-convert-custom.html" target="_blank"&gt;how to teacher linq&lt;/a&gt; и трюк с Compile() позволили сделать то, что мне нужно.&lt;br /&gt;
Далее мне нужно продать это решение и возникают такие вопросы: а насколько linq2db зрелый продукт, много ли в нём багов, поддерживается ли он какой-нибудь большой компанией, на сколько он распространен и т.п.&lt;br /&gt;
Если использовать в проекте какой-нибудь Dapper, то ответы сразу находятся:  Dapper все знают, он разработан и используется в stackoverflow, он позиционируется как легковесная альтернатива ORM (первой версии LinqToSql на момент разработки), он на столько примитивен, что баги там врятли есть. &lt;br /&gt;
Ответы по Linq2Db: он достаточно наворочен и универсален, так что баги там наверняка есть; с распространённость не очень, судя по документации; в последнее время поддерживается, в основном, парочкой энтузиастов (справедливости ради, очень крутых разработчиков): sdanyliv и MaceWindu; IT временно самоустранился.&lt;br /&gt;
 &lt;br /&gt;
Что, как мне представляется, добавило бы аргументов в пользу выбора  linq2db:&lt;br /&gt;
1. Success stories, список компаний и продуктов, использующих linq2db. Подозреваю, что он используется много кем, не только тремя "Notable open-source users" из документации. &lt;br /&gt;
2. Наличие платной поддержки очень бы помогло.&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Wed, 29 Sep 2021 00:39:11 GMT</pubDate>
		
			<author>artelk &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Неявные внешние ключи</title>
		<link>http://rsdn.org/Forum/prj.rfd/8102251.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8102251</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8102251</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8102251</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8102251</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8102251</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Имеется простейшая схема базы&lt;br /&gt;
&lt;img border='0' src='http://files.rsdn.org/79122/OpderPartner.PNG' /&gt;&lt;br /&gt;
Можно ли настроить linq2db так, чтобы не писать явно внешний ключ в классе Order:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;[Table(&lt;span class='str'&gt;"Partners"&lt;/span&gt;)]
    &lt;span class='kw'&gt;class&lt;/span&gt; Partner
    {
        [PrimaryKey, Identity]
        &lt;span class='kw'&gt;public long&lt;/span&gt; ID { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; }
        [Column]
        &lt;span class='kw'&gt;public string&lt;/span&gt; Name { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; }
    }

    [Table(&lt;span class='str'&gt;"Orders"&lt;/span&gt;)]
    &lt;span class='kw'&gt;class&lt;/span&gt; Order
    {
        [PrimaryKey, Identity]
        &lt;span class='kw'&gt;public long&lt;/span&gt; ID { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; }
        [Column]
        &lt;span class='kw'&gt;public string&lt;/span&gt; Number { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; }
        [Association(ThisKey = &lt;span class='str'&gt;"Partner"&lt;/span&gt;, OtherKey = &lt;span class='str'&gt;"ID"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public&lt;/span&gt; Partner Partner { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; }
    }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
И при этом было доступно примерно такое:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;var&lt;/span&gt; query = db.GetTable&amp;lt;Order&amp;gt;().Select(_=&amp;gt;_.Partner.Name);
&lt;span class='kw'&gt;var&lt;/span&gt; list = query.ToList();&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Tue, 28 Sep 2021 14:14:35 GMT</pubDate>
		
			<author>Naf2000 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>17</slash:comments>
		
	</item>

	<item>
		<title>Linq2DB и Хранимые процедуры CLR</title>
		<link>http://rsdn.org/Forum/prj.rfd/8090232.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8090232</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8090232</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8090232</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8090232</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8090232</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Как известно Хранимые процедуры CLR еще в 2005 MS SQL.&lt;br /&gt;
Но о широком использовании не слышал.&lt;br /&gt;
Наприер в 1С &lt;a class="m" href="https://forum.mista.ru/topic.php?id=871825" target="_blank"&gt;Тест Гилева показал, что файловая быстрее&lt;/a&gt; файловая база на интерпретаторе быстрее SQL.&lt;br /&gt;
Из-за сложности алгоритмов тяжело вытащить все данные одним запросом. Приходится гонять данные с сервера на клиента по нескольку раз. Отсюда и тормоза.&lt;br /&gt;
Но вот если обязанности сервера приложений возьмут на себя  Хранимые процедуры CLR ситуация может резко измениться.&lt;br /&gt;
Но теперь и инстрeменты на сервере SQL должны быть аналогичные что на сервере приложений, а именно доступ через Linq&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Mon, 13 Sep 2021 15:19:58 GMT</pubDate>
		
			<author>Serginio1 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>Модели через xml</title>
		<link>http://rsdn.org/Forum/prj.rfd/8075545.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8075545</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8075545</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8075545</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8075545</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8075545</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Парочка вопросов.&lt;br /&gt;
&lt;br /&gt;
1. Есть ли в LinqToDb описывать модели в xml?&lt;br /&gt;
В одном из проектов это одно из требований. &lt;br /&gt;
&lt;br /&gt;
Пока придумал только одно, читать самому xml с моделями и через FluentMapper настраивать.&lt;br /&gt;
Но вдруг есть уже готовые средства?&lt;br /&gt;
&lt;br /&gt;
2. Можно ли сделать свой атрибут и навесить его на класс/свойство, что бы построитель запросов его вызывал?&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Fri, 20 Aug 2021 08:23:47 GMT</pubDate>
		
			<author>LevLimin &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Configuration.ContinueOnCapturedContext - зачем?</title>
		<link>http://rsdn.org/Forum/prj.rfd/8038152.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8038152</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8038152</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8038152</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8038152</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8038152</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;&lt;a class="m" href="https://linq2db.github.io/articles/FAQ.html#which-async-model-linq-to-db-use" target="_blank"&gt;https://linq2db.github.io/articles/FAQ.html#which-async-model-linq-to-db-use&lt;/a&gt;&lt;br /&gt;
Почему не false везде, раз самой библиотеке этот контекст не нужен?&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='com'&gt;// Linq2Db library method&lt;/span&gt;
async Task&amp;lt;Foo&amp;gt; GetFooAsync()
{
  &lt;span class='com'&gt;//...&lt;/span&gt;
  await SomethingElseAsync().ConfigureAwait(Configuration.ContinueOnCapturedContext);
  &lt;span class='com'&gt;//...&lt;/span&gt;
  &lt;span class='kw'&gt;return&lt;/span&gt; ...;
}

&lt;span class='com'&gt;// Client side code&lt;/span&gt;
async Task UIMethodAsync()
{
  &lt;span class='kw'&gt;var&lt;/span&gt; foo = await GetFooAsync().ConfigureAwait(&lt;span class='kw'&gt;true&lt;/span&gt;); &lt;span class='com'&gt;// или просто await GetFooAsync();&lt;/span&gt;
  lbl1.Text = &lt;span class='str'&gt;"Done"&lt;/span&gt;;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
В клиентском коде контекст восстановится, даже если Configuration.ContinueOnCapturedContext был false.&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Sun, 27 Jun 2021 12:33:54 GMT</pubDate>
		
			<author>artelk &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Temp table</title>
		<link>http://rsdn.org/Forum/prj.rfd/8014278.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8014278</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8014278</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8014278</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8014278</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8014278</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;С удивлением обнаружил, что на самом деле создается обычная, не временная таблица. А у постгри это довольно небыстро.&lt;br /&gt;
Вопрос &amp;mdash; а как тогда передать табличные данные, при условии что нужно поддержать постгри, мсскл и, потенциально, оракль?&lt;div class='tagline'&gt;... &amp;lt;&amp;lt; RSDN@Home 1.3.17 alpha 5 rev. 62&amp;gt;&amp;gt;&lt;/div&gt;&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Fri, 21 May 2021 19:38:42 GMT</pubDate>
		
			<author>Ночной Смотрящий &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>6</slash:comments>
		
	</item>

	<item>
		<title>Postgree INSERT ON CONFLICT DO NOTHING</title>
		<link>http://rsdn.org/Forum/prj.rfd/8014195.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/8014195</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/8014195</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8014195</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8014195</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8014195</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте,&lt;br /&gt;
&lt;br /&gt;
Что-то не пойму, какой нужно написать код, что-бы при вставке при совпадении ПК ничего не вставлялось и не возникала ошибка?&lt;br /&gt;
Т.е. что-бы получился SQL вида INSERT ... ON CONFLICT (...) DO NOTHING?&lt;br /&gt;
&lt;br /&gt;
db.Table.InsertOrUpdate(insertExpr, updateExpr, keySelector)?&lt;br /&gt;
Но что писать во втором параметре (updateExpr)?&lt;br /&gt;
&lt;br /&gt;
Или есть какой-то другой рекомендуемый способ?&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Fri, 21 May 2021 17:27:12 GMT</pubDate>
		
			<author>swimmers &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>6</slash:comments>
		
	</item>

	<item>
		<title>Update performance regression</title>
		<link>http://rsdn.org/Forum/prj.rfd/7993035.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/7993035</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/7993035</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7993035</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7993035</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7993035</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Старый ишью &amp;mdash; &lt;a class="github m" href="https://github.com/linq2db/linq2db/issues/2556" target="_blank"&gt;https://github.com/linq2db/linq2db/issues/2556&lt;/a&gt;&lt;br /&gt;
Хоть и закрыт, но не починился. Обновил еще раз в существующем проекте &amp;mdash; получил те же тормоза. Времени на то чтобы выдернуть кусок для воспроизведения, увы, пока нет совсем. Приходится по прежнему оставаться на 2.9.8.&lt;div class='tagline'&gt;... &amp;lt;&amp;lt; RSDN@Home 1.3.17 alpha 5 rev. 62&amp;gt;&amp;gt;&lt;/div&gt;&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Mon, 19 Apr 2021 07:45:59 GMT</pubDate>
		
			<author>Ночной Смотрящий &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>12</slash:comments>
		
	</item>

	<item>
		<title>Numeric NaN not supported by System.Decimal</title>
		<link>http://rsdn.org/Forum/prj.rfd/7984162.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/7984162</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/7984162</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7984162</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7984162</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7984162</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Есть у меня класс замапленный на таблицу Postgresql&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;class Layer
{
    // ...
    [Column("area")]
    public double Area {get; set;}
    // ...
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Замапленное поле имеет тип Numeric. В это поле кладётся триггером значение функции &lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;st_area(geom)&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
.&lt;br /&gt;
Где geom это тип Postgis, расширения для Postgresql.&lt;br /&gt;
Иногда, когда геометрия кривая, то результат этой функции может быть NaN.&lt;br /&gt;
И соответственно, пытаясь в LinqToDb получить значение записи, получаю ошибку: "Numeric NaN not supported by System.Decimal"&lt;br /&gt;
Можно как-то такие вещи отслеживать или надо логику работы поменять, что бы не приходилось запрашивать записи со значением NaN в поле?&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Mon, 05 Apr 2021 18:54:08 GMT</pubDate>
		
			<author>Lev_Limin &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Select для структурных полей</title>
		<link>http://rsdn.org/Forum/prj.rfd/7965340.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/7965340</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/7965340</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7965340</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7965340</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7965340</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Имею следующую таблицу:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;    [Table(Schema = &lt;span class='str'&gt;"dbo"&lt;/span&gt;, Name = &lt;span class='str'&gt;"Test"&lt;/span&gt;)]
    [Column(&lt;span class='str'&gt;"Coord.X"&lt;/span&gt;, MemberName = &lt;span class='str'&gt;"Coord.X"&lt;/span&gt;, CanBeNull = &lt;span class='kw'&gt;false&lt;/span&gt;)]
    [Column(&lt;span class='str'&gt;"Coord.Y"&lt;/span&gt;, MemberName = &lt;span class='str'&gt;"Coord.Y"&lt;/span&gt;, CanBeNull = &lt;span class='kw'&gt;false&lt;/span&gt;)]
    [Column(&lt;span class='str'&gt;"Coord.Z.Z1"&lt;/span&gt;, MemberName = &lt;span class='str'&gt;"Coord.Z.Z1"&lt;/span&gt;, CanBeNull = &lt;span class='kw'&gt;false&lt;/span&gt;)]
    [Column(&lt;span class='str'&gt;"Coord.Z.Z2"&lt;/span&gt;, MemberName = &lt;span class='str'&gt;"Coord.Z.Z2"&lt;/span&gt;, CanBeNull = &lt;span class='kw'&gt;false&lt;/span&gt;)]
    &lt;span class='kw'&gt;public partial class&lt;/span&gt; Test
    {
        [Column, PrimaryKey, Identity] 
        &lt;span class='kw'&gt;public long&lt;/span&gt; ID;&lt;span class='com'&gt;// { get; set; } &lt;/span&gt;
        &lt;span class='kw'&gt;public&lt;/span&gt; Coord Coord;&lt;span class='com'&gt;// { get; set; }&lt;/span&gt;
    }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Здесь Coord и Z struct-типы нескольких полей&lt;br /&gt;
Удалось научиться работать с ними в предикатах:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;db.Tests.Where(t =&amp;gt; t.Coord != &lt;span class='kw'&gt;default&lt;/span&gt;(Coord))&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Однако, когда я пишу их в Selectничего не выходит:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;db.Tests.Select(t =&amp;gt; t.Coord).Distinct()&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Исключение:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;Вызвано исключение: "LinqToDB.Linq.LinqException" в linq2db.dll&lt;br /&gt;
Необработанное исключение типа "LinqToDB.Linq.LinqException" в linq2db.dll&lt;br /&gt;
Expression 't.Coord' is not a Field.&lt;/p&gt;&lt;/blockquote&gt;
Что и где надо написать, чтобы linq2db понимал такие выражения?&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Fri, 05 Mar 2021 07:49:10 GMT</pubDate>
		
			<author>Naf2000 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Проверка на null</title>
		<link>http://rsdn.org/Forum/prj.rfd/7962425.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/7962425</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/7962425</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7962425</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7962425</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7962425</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Имеем простейший класс смаппированный из таблицы Firebird&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;    [Table(Schema=&lt;span class='str'&gt;"SYSDBA"&lt;/span&gt;, Name=&lt;span class='str'&gt;"Items"&lt;/span&gt;)]
    &lt;span class='kw'&gt;public partial class&lt;/span&gt; Item
    {
        [PrimaryKey, Identity   ] &lt;span class='kw'&gt;public long&lt;/span&gt;   ID     { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; } &lt;span class='com'&gt;// bigint&lt;/span&gt;
        [Column,     NotNull    ] &lt;span class='kw'&gt;public string&lt;/span&gt; Name   { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; } &lt;span class='com'&gt;// varchar(100)&lt;/span&gt;
        [Column,        Nullable] &lt;span class='kw'&gt;public short&lt;/span&gt;? Rating { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; } &lt;span class='com'&gt;// smallint&lt;/span&gt;
    }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
и к нему простейшие запросы, которые совершенно по разному проверяют значение null. Общей картины пока не видно мне:&lt;br /&gt;
вроде бы связано с атрибутами NotNull и Nullable, но это пока поля не участвуют в выражениях:&lt;br /&gt;
&lt;table class='formatter' border='0' cellspacing='2' cellpadding='5'&gt;  &lt;tr class='formatter'&gt;    &lt;th class='formatter'&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;foreach&lt;/span&gt; (&lt;span class='kw'&gt;var&lt;/span&gt; q &lt;span class='kw'&gt;in&lt;/span&gt; db.Items.Where(x=&amp;gt; x.ID!=0))&lt;/code&gt;&lt;/pre&gt;&lt;/th&gt;    &lt;th class='formatter'&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;SELECT&lt;/span&gt;
        "x".ID,
        "x"."Name",
        "x"."Rating"
&lt;span class='kw'&gt;FROM&lt;/span&gt;
        "Items" "x"
&lt;span class='kw'&gt;WHERE&lt;/span&gt;
        "x".ID &amp;lt;&amp;gt; 0&lt;/code&gt;&lt;/pre&gt;&lt;/th&gt;  &lt;/tr&gt;  &lt;tr class='formatter'&gt;    &lt;th class='formatter'&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;foreach&lt;/span&gt; (&lt;span class='kw'&gt;var&lt;/span&gt; q &lt;span class='kw'&gt;in&lt;/span&gt; db.Items.Where(x=&amp;gt; x.Rating!=0))&lt;/code&gt;&lt;/pre&gt;&lt;/th&gt;    &lt;th class='formatter'&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;SELECT&lt;/span&gt;
        "x".ID,
        "x"."Name",
        "x"."Rating"
&lt;span class='kw'&gt;FROM&lt;/span&gt;
        "Items" "x"
&lt;span class='kw'&gt;WHERE&lt;/span&gt;
        ("x"."Rating" &amp;lt;&amp;gt; 0 &lt;span class='kw'&gt;OR&lt;/span&gt; "x"."Rating" &lt;span class='kw'&gt;IS NULL&lt;/span&gt;)&lt;/code&gt;&lt;/pre&gt;&lt;/th&gt;  &lt;/tr&gt;  &lt;tr class='formatter'&gt;    &lt;th class='formatter'&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;foreach&lt;/span&gt; (&lt;span class='kw'&gt;var&lt;/span&gt; q &lt;span class='kw'&gt;in&lt;/span&gt; db.Items.Where(x=&amp;gt; x.Rating+42!=42))&lt;/code&gt;&lt;/pre&gt;&lt;/th&gt;    &lt;th class='formatter'&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;SELECT&lt;/span&gt;
        "x".ID,
        "x"."Name",
        "x"."Rating"
&lt;span class='kw'&gt;FROM&lt;/span&gt;
        "Items" "x"
&lt;span class='kw'&gt;WHERE&lt;/span&gt;
        "x"."Rating" + 42 &amp;lt;&amp;gt; 42&lt;/code&gt;&lt;/pre&gt;&lt;/th&gt;  &lt;/tr&gt;&lt;tr class='formatter'&gt;    &lt;th class='formatter'&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;foreach&lt;/span&gt; (&lt;span class='kw'&gt;var&lt;/span&gt; q &lt;span class='kw'&gt;in&lt;/span&gt; db.Items.Where(x=&amp;gt; x.ID%2!=0))&lt;/code&gt;&lt;/pre&gt;&lt;/th&gt;    &lt;th class='formatter'&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;SELECT&lt;/span&gt;
        "x".ID,
        "x"."Name",
        "x"."Rating"
&lt;span class='kw'&gt;FROM&lt;/span&gt;
        "Items" "x"
&lt;span class='kw'&gt;WHERE&lt;/span&gt;
        (Mod("x".ID, 2) &amp;lt;&amp;gt; 0 &lt;span class='kw'&gt;OR&lt;/span&gt; Mod("x".ID, 2) &lt;span class='kw'&gt;IS NULL&lt;/span&gt;)&lt;/code&gt;&lt;/pre&gt;&lt;/th&gt;  &lt;/tr&gt;&lt;/table&gt;Или хотя бы как можно на это повлиять?&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Sun, 28 Feb 2021 17:53:03 GMT</pubDate>
		
			<author>Naf2000 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Invalid attempt of read when the reader is closed</title>
		<link>http://rsdn.org/Forum/prj.rfd/7957791.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/7957791</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/7957791</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7957791</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7957791</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7957791</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;При изучении linq2db столкнулся с непониманием, почему чтение закрывается после первого же Update?&lt;br /&gt;
Нельзя одновременно читать и писать? А как это делать в одно транзакции? Или надо материализовать результат чтения?&lt;br /&gt;
Вот элементарный код:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;            &lt;span class='kw'&gt;using&lt;/span&gt; (&lt;span class='kw'&gt;var&lt;/span&gt; db = &lt;span class='kw'&gt;new&lt;/span&gt; TestDB())
            {
                db.BeginTransaction();
                &lt;span class='kw'&gt;foreach&lt;/span&gt; (&lt;span class='kw'&gt;var&lt;/span&gt; st &lt;span class='kw'&gt;in&lt;/span&gt; db.Entinies.Select(_ =&amp;gt; _.UID))
                {
                    db.Items.Update(x =&amp;gt; &lt;span class='kw'&gt;false&lt;/span&gt;, x =&amp;gt; x);
                }
                db.CommitTransaction();
            }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Вот ошибка:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;System.InvalidOperationException&lt;br /&gt;
  HResult=0x80131509&lt;br /&gt;
  Сообщение = Invalid attempt of read when the reader is closed.&lt;br /&gt;
  Источник = FirebirdSql.Data.FirebirdClient&lt;br /&gt;
  Трассировка стека:&lt;br /&gt;
   at FirebirdSql.Data.FirebirdClient.FbDataReader.CheckState()&lt;br /&gt;
   at FirebirdSql.Data.FirebirdClient.FbDataReader.Read()&lt;br /&gt;
   at LinqToDB.Linq.QueryRunner.&amp;lt;ExecuteQuery&amp;gt;d__12`1.MoveNext()&lt;br /&gt;
   at ConsoleApp11.Program.Main(String[] args) in C:\Users\User\source\repos\ConsoleApp11\ConsoleApp11\Program.cs:line 51&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Tue, 23 Feb 2021 16:02:12 GMT</pubDate>
		
			<author>Naf2000 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>17</slash:comments>
		
	</item>

	<item>
		<title>MemberName для всех колонок вложенного объекта</title>
		<link>http://rsdn.org/Forum/prj.rfd/7932418.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/7932418</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/7932418</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7932418</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7932418</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7932418</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Нашёл как вручную прописать маппинг вложенного объекта в ту же таблицу:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;class&lt;/span&gt; A
{
  &lt;span class='kw'&gt;public int&lt;/span&gt; Value1 {&lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;;}
  &lt;span class='kw'&gt;public int&lt;/span&gt; Value2 {&lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;;}
}

&lt;span class='kw'&gt;class&lt;/span&gt; B
{
  [Column(MemberName = &lt;span class='str'&gt;".Value1"&lt;/span&gt;)]
  [Column(MemberName = &lt;span class='str'&gt;".Value2"&lt;/span&gt;)]
  &lt;span class='kw'&gt;public&lt;/span&gt; A Item {&lt;span class='kw'&gt;get&lt;/span&gt;;&lt;span class='kw'&gt;set&lt;/span&gt;;}
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Как-то можно автоматом подгрузить все свойства вложенного типа, а не явно каждое прописывать в атрибуте или в PropertyMappingBuilder?&lt;br /&gt;
Что-то вроде как в EF Core &lt;a class="microsoft m" href="https://docs.microsoft.com/en-us/ef/core/modeling/owned-entities#explicit-configuration" target="_blank"&gt;OwnsOne&lt;/a&gt;&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Fri, 22 Jan 2021 20:16:02 GMT</pubDate>
		
			<author>karbofos42 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>LinqToDb</title>
		<link>http://rsdn.org/Forum/prj.rfd/7912133.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/7912133</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/7912133</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7912133</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7912133</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7912133</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;До недавнего времени я, для работы с БД, использовал dapper. Он мне всем нравится, но, по современным меркам, уж больно он "низкоуровневый".&lt;br /&gt;
Использовал ef core, который работал стабильно, то слабоват, когда много однотипных таблиц вида object_####_, они часто меняются и меняется структура.&lt;br /&gt;
Требуются постоянные запросы с разным составом полей. И что понадобится в следующий раз пользователям, неизвестно.&lt;br /&gt;
&lt;br /&gt;
Мне, несколькими тредами ниже, посоветовали LinqToDb, мол он всё это умеет. И да, он умел практически всё что надо.&lt;br /&gt;
&lt;br /&gt;
Сделал я тестовое приложение. Идёт чтение, в n-тасков, большой таблицы из постгреса. После чтения записи, надо получить запись с сервера mysql, и обновить полученную запись в постгреса.&lt;br /&gt;
Таски запускаются через Task.Factory.StartNew(...)&lt;br /&gt;
&lt;br /&gt;
Постгрес справляется на ура, всё хорошо. А, вот с MySql возникла проблема. &lt;br /&gt;
&lt;br /&gt;
В таске выполняется так:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;LinqToDbConnectionOptionsBuilder myBuilder = new LinqToDbConnectionOptionsBuilder();
myBuilder.UseMySql("тут ConnectionString");
await using DataConnection myDataConnection = new DataConnection(myBuilder.Build());

foreach (LayerTable item in page)
{
    DataParameter f = new DataParameter("@id", item.RowId, DataType.Int32);
    List&amp;lt;IDictionary&amp;lt;string, object&amp;gt;&amp;gt; result = myDataConnection.Query&amp;lt;IDictionary&amp;lt;string, object&amp;gt;&amp;gt;(Reader, $"select id from manual limit 10").ToList();
}

...

IDictionary&amp;lt;string, dynamic&amp;gt; Reader(IDataRecord reader)
{
    Dictionary&amp;lt;string, dynamic&amp;gt; values = new Dictionary&amp;lt;string, dynamic&amp;gt;(reader.FieldCount);
    object[] rowValues = new object[reader.FieldCount];
    int n = reader.GetValues(rowValues);
    for (int j = 0; j &amp;lt; n; j++)
    {
        values.Add(reader.GetName(j), rowValues[j]);
    }
    return values;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
На строке myDataConnection.Query тупит секунд 10 и вываливается с MySqlException со словами "Unable to read data from the transport connection: Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.."&lt;br /&gt;
&lt;br /&gt;
Запрос не выполняется ни разу, в reader не заходит. Причём, если этот же код выполнять в main(), то работает как часы.&lt;br /&gt;
&lt;br /&gt;
Может есть какая-то особенность работы с MySql в LinqToDB?&lt;br /&gt;
С постгресом нет проблем. Такой же код, но с dapper работает на ура.&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Thu, 24 Dec 2020 18:44:18 GMT</pubDate>
		
			<author>Lev_Limin &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>9</slash:comments>
		
	</item>

	<item>
		<title>linq2db и Убивец 1С</title>
		<link>http://rsdn.org/Forum/prj.rfd/7762424.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/prj.rfd/7762424</guid>
		<comments>http://rsdn.org/Forum/prj.rfd/7762424</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7762424</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7762424</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7762424</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Навеяно &lt;br /&gt;
 &lt;a class="m" href="https://forum.mista.ru/topic.php?id=856025&amp;page=1" target="_blank"&gt;Killer 1s Application&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Если посмотреть на 1С то из преимуществ это единая иерархия классов (справочники, документы, регистры остатков, регистры движений, периодические регистры)&lt;br /&gt;
&lt;br /&gt;
В свое время делал отбражение 1С Базы на EF&lt;br /&gt;
&lt;a class="m" href="https://infostart.ru/public/393228/" target="_blank"&gt;Code First и Linq to EF на примере 1С версии 7.7 и 8.3 часть I&lt;/a&gt;&lt;br /&gt;
&lt;a class="m" href="https://infostart.ru/public/402038/" target="_blank"&gt;Code First и Linq to EF на примере 1С версии 8.3 часть II&lt;/a&gt;&lt;br /&gt;
&lt;a class="m" href="https://infostart.ru/public/402433/" target="_blank"&gt;Linq to EF. Практика использования. Часть III&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Обработки можно скачать здесь&lt;br /&gt;
&lt;a class="stackoverflow m" href="https://ru.stackoverflow.com/questions/527763/" target="_blank"&gt;https://ru.stackoverflow.com/questions/527763/&lt;/a&gt;Как-вызвать-метод-из-c-в-1С/527802#527802&lt;br /&gt;
&lt;a class="m" href="http://files.rsdn.org/19608/CodeFirstTo1C.zip" target="_blank"&gt;http://files.rsdn.org/19608/CodeFirstTo1C.zip&lt;/a&gt;&lt;br /&gt;
&lt;a class="m" href="http://files.rsdn.org/19608/CodeFirstTo83.zip" target="_blank"&gt;http://files.rsdn.org/19608/CodeFirstTo83.zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 Я к тому, что нужна система учета, которую можно быстро прикрутить под себя.&lt;br /&gt;
Например для вэб магазина следить за остатками итд напрямую.&lt;br /&gt;
Там же и прикрутить TVFs для ускорения выбора остатков, запись движений с перерасчетом остатков итд&lt;/div&gt;
				
		</description>
		
		<category>prj</category><category>rfd</category>
		<pubDate>Wed, 24 Jun 2020 20:03:05 GMT</pubDate>
		
			<author>Serginio1 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>31</slash:comments>
		
	</item>
</channel>
</rss>
