我已经建立了的LINQ to SQL的DataContext,以反映基本关系的集合:在LINQ创造新父当填充子实体到SQL
的委任有一个客户端,一个员工和许多AppointmentServices。每个AppointmentService都有一个ServiceDefinition。每个通过主键和外键链接到另一个键。
我在内存中创建一个新的约会,填充clientID的和雇员。我在内存中创建一个AppService,并将AppService添加到tmpAppointment.AppServices中设置的实体。
tmpAppointment = New Appointment
tmpAppointment.ClientID = 1
tmpAppointment.EmployeeID = 2
tmpAppService = New AppService
tmpAppService.ServiceDefinitionID = 123
tmpAppointment.AppServices.Add(tmpAppService)
是否有可能来填充存储器中的每一AppService服务的服务定义不插入任何任命或应用服务为各自的数据库?用户可以取消这个过程,我只是想避免不必要的添加,然后从数据库中删除。
确认用户想要使用未绑定控件继续前进,我可以开球了,但我想知道LINQ to SQL是否提供了更优雅的解决方案。
我曾尝试:
tmpAppointment.AppServices.Load
和
创建new ServiceDefinition
然后填充它,然后将其添加到AppServices
和
从数据库中选择正确的服务定义并将其添加到AppServices实体集
第一不执行任何操作,后两个抛从DataContext类内执行以下操作:
System.InvalidOperationException:“序列包含一个以上的元素”
在自动生成的线
<Global.System.Data.Linq.Mapping.AssociationAttribute _
(Name:="AppService_ServiceDefinition", Storage:="_AppServices", _
ThisKey:="ServiceID", OtherKey:="ServiceDefinitionID", _
IsForeignKey:=true)>
Public Property AppService() As AppService
Get
Return Me._AppServices.Entity
End Get
Set
Dim previousValue As AppService = Me._AppServices.Entity <<<< error thrown
谢谢。
谢谢你,但是做所以抛出我提到的错误。我已经更新了关于这方面的更多细节。 – George
我解决了我的错误抛出问题。一旦我这样做了,我可以手动填充ServiceDefinition实体。谢谢。对于任何有此问题的人来说,LINQ to SQL的确如你所期望的那样工作,但你需要正确设置你的关联。一旦我改变了我的父母/子女关系,基本上和我原来的父母/子女关系相反(参见顶部的图表),事情就开始正常工作 - 这很有趣! – George