2012-11-12 145 views
0

我的几个ASP.NET MVC 2(.NET 3.5)项目采用亚音速2,因为它是在项目的数据层主数据库访问。这工作得很好,数据库中的所有内容都可以毫无问题地访问。但是,最近,我的工作实施了“零警告”政策,因此我们一直在审查所有项目,以消除项目中的任何警告(如果可能)。在生成的类亚音速生成编译器警告

有问题的项目只有亚音速警告留下然而要么消除或抑制,这些生成的类本身,这使得去除它们很成问题中找到。是我得到的警告如下:

  • “......重写Object.Equals(对象o),但不重写Object.GetHashCode()......” 在ActiveRecord.cs
  • ” .. 。请将.Name”隐藏继承成员‘SubSonic.Schema.DatabaseTable.Name’。使用new关键字隐藏,如果是打算......‘在Struct.cs
  • ’多个模板指令是在模板中找到所有但第一个将被忽略多个参数的模板指令应一个模板指令内指定“在Settings.ttinclude
  • ”编译转型:变量‘参数’是分配但它的值从未使用“在SQLServer.ttinclude
  • ”不再支持C#2.0和C#3.5编译器。模板将始终使用版本4编译器而不是“指定的”v3.5“进行编译。”

我试图到处搜索这些警告的解决方案,但目前为止没有运气。任何人都遇到过这样的警告,如果是这样,你是怎么解决的?谢谢。

+0

你使用的是什么确切的版本?也许尝试更新的2.x版本?我没有收到任何警告VS2012/2010 3.5/4.0。你确定你没有使用第3版?从内存来看,版本3使用了tt文件。 –

回答

1

你不会喜欢这个。

,将解决你的问题一劳永逸唯一的选择就是下载SubSonic来源,对templates进行必要的更改,重新编译并使用您自己的二进制文件,而不是股票下载。

从长远来看,我强烈建议彻底抛弃SubSonic。这不值得痛苦。

+1

另一方面,我发现这是它的优势之一。代码很容易理解,并且模板很容易定制(只要您在小步骤中进行更改并检查它们是否仍然有效)。 –

+0

感谢Jon的帮助,我们实际上已经停止在我们的新项目中使用SubSonic来支持Entity Framework,但我只是希望我们能够解决我们旧项目的警告。因此,现在我被告知不必担心,但我会保留模板位置的记录以供将来参考,谢谢。 – Jonk268