我喜欢使用subsonic3 Vb.net模板构建sctive record dal。我正在处理子声音中的很多错误。
1)在Add()函数中:(我有修复) 当indx在db中有计数器时,返回的新密钥类型为十进制,活动记录fil有一个例外“公共成员'更改类型为'n'类型'十进制'未找到”。 我设法修复了这个bug。我在activeRecord模板中更改了子
旧
Public Sub SetKeyValue(value As Object) Implements IActiveRecord.SetKeyValue
If value IsNot Nothing AndAlso value IsNot DBNull.Value Then
Dim settable = value.ChangeTypeTo(Of <#=tbl.PK.SysType#>)()
Me.GetType.GetProperty(Me.KeyName()).SetValue(Me, settable, Nothing)
End If
End Sub
NEW
Public Sub SetKeyValue(value As Object) Implements IActiveRecord.SetKeyValue
If value IsNot Nothing AndAlso value IsNot DBNull.Value Then
Dim settable = CType( value, <#=tbl.PK.SysType#>)
Me.GetType.GetProperty(Me.KeyName()).SetValue(Me, settable, Nothing)
End If
End Sub
2)在Update function()函数中:(我已修复) 更新永远不会做的工作。在调试它之后,更新的sql语句永远不会有查询的“SET”代码总是如下: UPDATE [tableName] WHERE ... 似乎Subsonic.Repository dll中存在问题 - &gt; IRepository Dirty Colums没有在新对象中使用,例如:
为什么更新时没有DirtyColumns如何将Column设置为Dirty?
- 更新问题解决了它不是一个错误.-- 通过在第3行之后添加来解决:CAT.SetIsLoaded(True)。 因此,当propety IsLoaded设置为tru时,任何更新的列都将添加到DirtyColums并且这些列将被更新为DB
3)FirstOrDefault功能:(无法修复) 总是我meaaaaaaaa总是抛出exsiption =“第1行:''''附近的语法错误。 来自SubSonic.Linq dll
Pleeeeeeeeeeeease help
先谢谢, TheGodfather
答案 0 :(得分:0)
很简单,您使用的是哪个版本的SubSonic3?
1)不确定你在这里要做什么。
2)这不是你更新唱片的方式,试试这个......
Dim cat = Category.SingleOrDefault(Function(item) item.CategoryID = 1)
cat.CategoryName = "MOTORS"
cat.Update()
3)亚音速使用SingleOrDefault()
如上例所示。