SubSonic 3不会将外键表作为属性生成

问题描述 投票:1回答:2

基本上,我遇到的问题与详细的here相同,但在SubSonic 3.0中。不幸的是,我不知道如何在SubSonic 3.0中更改提供程序。

这是我需要在MySQL.ttinclude,Settings.ttinclude还是T4模板之一中进行更改吗?还是它进入某个地方的配置?

有什么想法?建议?

subsonic subsonic3
2个回答
0
投票

我发现this说它是按设计的。我无法想象为什么。我更改了Classes.tt文件以生成单个映射。相关代码如下。但是,这取决于我所有的PK都被命名为Id的事实,但是您应该能够理解这一点。

在IQueryable <>生成部分之前:

if (fk.ThisColumn == "Id")
{ 
   //This is where the standard IQueryable goes
} else {
   //This is what I added
   public <#= fk.OtherTable #> <#= fk.OtherTable #>
   {
      get 
      {
         var db=new <#=Namespace #>.<#=DatabaseName#>DB();
         return from items in db.<#=fk.OtherQueryable #>
                where items.<#=fk.OtherColumn#> == _<#=fk.ThisColumn#>
                select items;
      }
   }
}

希望有帮助。我现在想弄清楚现在要做很多表:/


0
投票

我正在使用Subsonic 2.2,但我遇到了同样的问题,但这可以解决我的问题:除了原始提供程序MySqlDataProvider,还有扩展版本:MySqlInnoDBDataProvider

因此在您的web.config中,请确保提供者是选择的:

  <add name="MyProvider" 
       type="SubSonic.MySqlInnoDBDataProvider, SubSonic" 
       connectionStringName="WriteConnectionString" 
       generatedNamespace="AttendAnywhere.Data" 
       generateLazyLoads="true" 
       extractClassNameFromSPName="true" />
© www.soinside.com 2019 - 2024. All rights reserved.