Я все еще пытаюсь обернуться вокруг связей LINQ to SQL и внешнего ключа.
У меня есть таблица с именем "Parent", а другая - с именем "Children".У меня есть отношения OneToMany, где у родителя может быть несколько детей.Мой DBML выглядит примерно так:
<Table Name="" Member="Parents">
<Type Name="Parent">
<Column Member="ParentID" Type="System.String" IsPrimaryKey="true" CanBeNull="false" />
<Column Member="ChildID" Type="System.String" CanBeNull="false" />
<Association Name="Parent_Child" Member="Childs" ThisKey="ParentID" OtherKey="ParentID" Type="Child" />
</Type>
</Table>
<Table Name="" Member="Childs">
<Type Name="Child">
<Column Member="ChildID" Type="System.String" IsPrimaryKey="true" CanBeNull="false" />
<Column Member="ParentID" Type="System.String" CanBeNull="false" />
<Association Name="Parent_Child" Member="Parent" ThisKey="ParentID" OtherKey="ParentID" Type="Parent" IsForeignKey="true" />
</Type>
</Table>
В моем коде я хотел бы сделать что-то вроде:
// parent has already been loaded from the datacontext
parent.Childs = <some collection of children>
db.SubmitChanges();
Но когда я это делаю, я получаю следующую ошибку:
Член, определяющий идентичность объекта, не может быть изменен.Попробуйте добавить новый объект с новым идентификатором и удалить вместо него существующий.
Может кто-нибудь сказать мне, как правильно выполнить это?