通过图形界面对dbml进行任何更改(添加表/存储过程)时,对System.Int32
的每个引用都会更改为System.[Integer]
(包括方括号),从而导致数百个错误。
这在这个dbml设计器中随处可见vb例如:
Public Property ArghID() As System.[Integer]
Public Function PleaseHelpDetails(.... <Global.System.Data.Linq.Mapping.ParameterAttribute(Name:="WhyWhyWhyID", DbType:="Int")> ByVal WhyWhyWhyID As System.[Integer], ...
Private _AnnoyanceID As System.[Integer]
Partial Private Sub OnHauntedDbmlIDChanging(value As System.[Integer])
我找不到这方面的参考资料。有人能推测出原因吗?
搜索和替换解决了这个问题,但这完全是一个麻烦。
更新:尝试了经典的"删除适当的"*AppData\Local\Temp\Temporary ASP。NET文件*文件夹"技巧-没有运气。查看了文件的SVN历史记录,其中一些ID被设置为字节(!),并在某个时刻手动更改为整数。我正在寻找与此不一致的内容,但还找不到任何内容。
就这样了-search and replace had search并销毁了dbml。
在dbml文件中,表列的定义是这样设置的:
<Column Name="WellObviouslyID" Type="System.Integer" DbType="Int NOT NULL" CanBeNull="false" />
而不是
<Column Name="WellObviouslyID" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
并在.designer页面中的其他事件上强制它们的完整性。
这是一个糟糕的选择,取代字符串导致了这一点。和以往一样,通过gui做事是可以避免的。试图节省时间总是很危险的。