<?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>Sat, 12 Sep 2026 08:14:05 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>
</channel>
</rss>
