Subsonic 无效的参数名

Subsonic 无效的参数名,subsonic,Subsonic,我在保存数据时遇到问题,因为生成的参数名称不正确 该表有一个字段“E-mail”,生成类包装器时,InsertCmd使用“@E-mail”作为参数之一。在SQL Server中,这是非法的,并生成异常 我在亚音速上到处寻找一种方法,将参数名修改为“@Email”,但ParameterName属性是只读的 我使用的是亚音速2.2,没有对其进行内部修改的来源 有什么想法吗 TIA如果无法更改列名,则可以修改模板。有关如何执行以下操作的详细信息,请参阅本博客文章: 我的一位同事使用SVN提取源代码,正

我在保存数据时遇到问题,因为生成的参数名称不正确

该表有一个字段“E-mail”,生成类包装器时,InsertCmd使用“@E-mail”作为参数之一。在SQL Server中,这是非法的,并生成异常

我在亚音速上到处寻找一种方法,将参数名修改为“@Email”,但ParameterName属性是只读的

我使用的是亚音速2.2,没有对其进行内部修改的来源

有什么想法吗


TIA

如果无法更改列名,则可以修改模板。有关如何执行以下操作的详细信息,请参阅本博客文章:


我的一位同事使用SVN提取源代码,正如预期的那样,在SS源代码中发现了一个bug

在类包装中设置列名时,ColumnName属性的setter将使用 parameterName=Utility.PrefixParameter(Utility.StripNonAlphaNumeric(columnName),Table.Provider);”。这将删除任何非法字符,如“我的电子邮件”列中的连字符

但是。。。创建SQL命令时不使用属性ParameterName。以下是SQLDataProvider.GetInsertSQL第1462行中的代码

Append(Utility.PrefixParameter(colName,this))

我把这个改成了

附加部分(列参数名称)

现在问题已经解决了


感谢您提出了可能的解决方案。

重命名不是一个选项。我正在编写一个将用户数据从MS Access迁移到SQL的应用程序。他们有超过500毫秒的访问数据库。我将不得不重命名每个数据库中的列。哎哟