【发布时间】:2016-08-05 00:12:21
【问题描述】:
我写了一个自定义数据集(基于强类型数据集,我看的更远了),我想让它适合在设计时使用,比如从工具箱中拖动(作为数据集工具自动生成) .所有这一切都在发生,因为我试图保持由我的同事设定的开发方法(我是新人,哈哈哈),当然我知道实体框架和那种东西的存在。所以,当我把它放在我的表单上时,我收到了这个错误:
名为“ParentChild_Relation”的关系已属于此数据集
当然是物质关系
这是代码:
Public Class MyDataSet
Inherits DataSet
Public Const PARENTCHILD_RELATION As String = "ParentChild_Relation"
Public Sub New()
MyBase.New()
Me.BeginInit()
Me.CreateDataSet()
Me.EndInit()
End Sub
Private Sub CreateDataSet()
DataSetName = "Test"
Me.EnforceConstraints = True
Me.Tables.Add(New ParentTable) 'custom datatable
Me.Tables.Add(New ChildTable) 'custom datatable
CreateRelation()
End Sub
Private Sub CreateRelation()
With DirectCast(Me.Tables(ChildTable.TABLENAME).Constraints.Add(PARENTCHILD_RELATION ,
Me.Tables(ParentTable.TABLENAME).Columns(ParentTable.ID),
Me.Tables(ChildTable.TABLENAME).Columns(ChildTable.ID)), ForeignKeyConstraint)
.UpdateRule = Rule.Cascade
.DeleteRule = Rule.Cascade
Me.Relations.Add(.ConstraintName, .RelatedColumns, .Columns, False)
End With
End Sub
End Class
我会知道任何可能的帮助
编辑
没有这条线也可以:
Me.Relations.Add(.ConstraintName, .RelatedColumns, .Columns, False)
但是,我仍然想要 DataSet 关系,因为这是它们的工作方式
编辑 2
如果没有上一行,它不会通过绑定找到关系:
BindingSource.DataSource = New MyDataSet
BindingSource.DataMember = "ParentChild_Relation"
【问题讨论】:
标签: vb.net foreign-keys dataset design-time