为 linq to sql 更新 SQL Compact db 和 dbml 时出现 Method not Found 错误
Posted
技术标签:
【中文标题】为 linq to sql 更新 SQL Compact db 和 dbml 时出现 Method not Found 错误【英文标题】:Method not Found error when updating SQL Compact db and dbml for linq to sql 【发布时间】:2013-01-30 19:18:56 【问题描述】:我有一个使用 linq to sql 和 SQL Compact 数据库的 vb.net 应用程序。我刚刚将数据库中的日期字段更新为可以为空,并使用 sqlmetal 重新生成了 dbml。现在,当我运行应用程序时,单击“搜索”按钮后出现此运行时错误:
找不到方法:'System.Nullable`1 Downtime.Students.get_DateOfBirth()'。
我注意到我对数据类型所做的最后一次更改也引起了问题。也许我没有更新 dbml 文件对吗?它在 .designer.vb 文件中为 dateOfBirth 字段提供了这个方法:
<Global.System.Data.Linq.Mapping.ColumnAttribute(Name:="dateOfBirth", Storage:="_DateOfBirth", DbType:="DateTime")> _
Public Property DateOfBirth() As System.Nullable(Of Date)
Get
Return Me._DateOfBirth
End Get
Set
If (Me._DateOfBirth.Equals(value) = false) Then
Me.OnDateOfBirthChanging(value)
Me.SendPropertyChanging
Me._DateOfBirth = value
Me.SendPropertyChanged("DateOfBirth")
Me.OnDateOfBirthChanged
End If
End Set
End Property
【问题讨论】:
【参考方案1】:解决方案,有点:我最终完全删除了 dbml 文件,使用 sqlmetal 重新生成 dbml,然后重新添加到项目中。
【讨论】:
以上是关于为 linq to sql 更新 SQL Compact db 和 dbml 时出现 Method not Found 错误的主要内容,如果未能解决你的问题,请参考以下文章