【问题标题】:SubSonic 3 isn't generating Foreign Key tables as a propertySubSonic 3 不生成外键表作为属性
【发布时间】:2010-05-24 23:13:12
【问题描述】:

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

这是我需要在 MySQL.ttinclude、Settings.ttinclude 或 T4 模板之一中更改的内容吗?还是它在某个地方配置?

想法?有什么建议吗?

【问题讨论】:

    标签: subsonic subsonic3


    【解决方案1】:

    我发现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;
          }
       }
    }
    

    希望这会有所帮助。我现在想弄清楚现在做多对多的桌子:/

    【讨论】:

      【解决方案2】:

      我使用的是 Subsonic 2.2,我遇到了同样的问题,但这解决了我的问题:除了原始提供商 MySqlDataProvider,还有一个扩展版本:MySqlInnoDBDataProvider

      所以在您的 web.config 中,确保选择了提供者:

        <add name="MyProvider" 
             type="SubSonic.MySqlInnoDBDataProvider, SubSonic" 
             connectionStringName="WriteConnectionString" 
             generatedNamespace="AttendAnywhere.Data" 
             generateLazyLoads="true" 
             extractClassNameFromSPName="true" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多