【发布时间】:2009-09-03 09:01:09
【问题描述】:
我使用 subsonic3 Vb.net 模板构建了 sctive 记录 dal。我正在处理亚音速 dll 中的很多错误。
1) 在 Add() 函数中:(我有修复) 当 indx 在数据库中有计数器时,返回的新键类型为十进制,活动记录文件有一个异常“公共成员'更改类型为'n 类型'未找到'十进制'”。 我设法修复了这个错误。我在 activeRecord 模板中更改了 sub
老
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
新
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)在更新函数()函数中:(我已经修复) 更新永远不会完成工作。在调试它之后,更新的 sql 语句永远不会有查询的“SET”dection,它总是像: 更新 [tableName] WHERE ... Subsonic.Repository dll 好像有问题 --> IRepository 的 例如,未在新对象中应用脏列:
- 将 Cat 调暗为 db.Category
- Cat.Indx=1
- Cat.SetIsNew(False)
- Cat.Name= '电机'
- 猫更新
为什么更新时没有 DirtyColumns 如何设置 Column 为 Dirty?
--更新问题解决了它不是错误。-- 通过在第 3 行之后添加解决: CAT.SetIsLoaded(True) 。 因此,当属性 IsLoaded 设置为 tru 时,任何更新的列都将添加到 DirtyColums 并且这些列将更新到 DB
3) FirstOrDefault 函数:(无法修复) 总是我 meaaaaaaaaan 总是抛出 exsiption = "第 1 行:'(' 附近的语法不正确。" 来自 SubSonic.Linq dll
请帮忙
提前致谢, 教父
【问题讨论】:
-
这里的问题真的太多了。我建议您将这个问题分成三个单独的问题,以便其他人更容易帮助/回答。
标签: vb.net activerecord subsonic3