如果列的单数名称与表名相同,如何避免SubSonic 3中的错误?

时间:2011-11-16 15:21:43

标签: c# subsonic subsonic3

对于令人困惑的标题感到抱歉,我不确定如何以不同的方式说出来......

好的,这是问题所在:

我有一个名为“Products”的表,主键是“Product”。通常,这不会导致任何问题。但是,我正在切换到SubSonic 3,它使所有表格变得单一。因此,当我重建T4模板时,它会抛出一个错误,因为它将列重命名为“ProductX”但不更新其余代码。例如,这出错了:

public IQueryable<Product> Products
    {
        get
        {
              var repo=AM.Inventory.Library.SonicData.Product.GetRepo();
              return from items in repo.GetAll()
                   where items.Product == _Product
                   select items;
        }
    }

但是,如果我把它改为:

public IQueryable<Product> Products
    {
        get
        {
              var repo=AM.Inventory.Library.SonicData.Product.GetRepo();
              return from items in repo.GetAll()
                   where items.ProductX == _Product
                   select items;
        }
    }

代码将构建得很好。如果我不得不这样做一次或两次,那很好......但每当我重建T4文件时,我都必须手动更新文件。

有什么方法可以避免这种情况吗?

谢谢, 安德鲁

1 个答案:

答案 0 :(得分:1)

修改您的T4模板。这就是他们的目的。

在ttincludes中查找MakeSingular(),MakePlural(),Cleanup(),添加“X”的代码在ActiveRecord.tt中。哈哈!!!“

实际上,这听起来像是命名代码中的一个错误,所以这可能是通过压缩错误来做出贡献的时候。