我知道Subsonic 3.0是最新最好的,我知道Subsonic 3.0有T4模板。
但是,Subsonic 3.0并不向后兼容Subsonic 2.2,这意味着我的项目包含用亚音速2.2查询语言编写的数百个代码文件在Subsonic 3.0中不起作用。
所以我的问题:是否有人为Subsonic 2.2制作t4模板来替换它创建的Generated文件。我的数据库很庞大,生成的文件数量有点疯狂。
是否有人使用此功能或是否有人制作了自定义工具来帮助升级路径?
感谢您阅读
答案 0 :(得分:2)
SubSonic 3是一个巨大的核心重新编码,使用了一些新技术,如T4而不是它自己的模板,并提供了一个linq查询引擎。
但大多数旧的功能,如查询工具,仍然可用。
如果你这样做了:
var p = new Product();
p.ProductName = "new product";
p.Save();
或者
var p = DB.Select()
.From<Product>()
.Where(Product.ProductCode).IsEqualTo("1234")
.ExecuteSingle<Product>();
这仍然适用于SubSonic3
如果你足够勇敢,我建议升级路径:
如果没有重新创建并修复可能的编译器/运行时异常:
if (p.QuantityHasValue) p.Total = p.Quantity * p.Price;
// changes to
if (p.Quantity.HasValue) p.Total = p.Quantity * p.Price;
将生成的文件的命名空间从Your.Namespace.DAL
更改为Your.Namespace.LegacyDAL