This is a migrated thread and some comments may be shown as answers.

Cascade delete - 1- N relationship

2 Answers 82 Views
Getting Started
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Jayavidya
Top achievements
Rank 1
Jayavidya asked on 12 Nov 2010, 08:43 AM
Hello,
 I have a User class with a collection of User Group in it. When I delete the User, all the entries in the User Group should be deleted according to cascade delete. Please refer to the steps I followed.
Step 1 : The usergroup collection has ItemType property.
public partial class User
   { [Telerik.OpenAccess.FieldAlias("groups")]
       [Telerik.OpenAccess.ItemType(typeof(UserGroup))]
       public IList<UserGroup> UserGroups
       {
           get { return groups; }
       }
   }

Step 2 : The app.config with User class details
<class name="User">
  <field name="groups">
    <collection>
      <extension key="inverse" value="user" />
      <extension key="managed" value="true" />
    </collection>
  </field>
  <extension key="db-optimistic-locking" value="changed" />
  <extension key="db-key-generator" value="AUTOINC" />
</class>

Step 3: UserGroup with delete property
<class name="UserGroup">
      <extension key="db-key-generator" value="AUTOINC" />
      <extension key="delete-orphans" value="true" />
</class>

Step 4: When I fetch the User using orm collection and give delete it does not work.It runs into some loop and doesnt end.
User  deleteUser = (from c in ObjectScope.Extent<User>()
                                   where c.UserId == deleteUserId
                               select c).First<User>();
               ObjectScope.Remove(deleteUser);
               ObjectScope.Transaction.Commit();

Please advice me asap.

2 Answers, 1 is accepted

Sort by
0
Ady
Telerik team
answered on 17 Nov 2010, 03:08 PM
Hello Jayavidya,

 Does the 'groups' field have the - [Telerik.OpenAccess.Depend()] attribute specified? This attribute sets the 'Cascade delete' functionality on. I did test the similar use case and my user group objects were deleted successfully.

Regards,
Ady
the Telerik team
See What's New in Telerik OpenAccess ORM in Q3 2010!
Monday, November 15, 11 am Eastern Time: Register here>>
Monday, November 15, 10 pm Eastern Time: Register here>>
0
Jayavidya
Top achievements
Rank 1
answered on 18 Nov 2010, 07:17 AM
Yes I did add that code..Also you need to provide dependency tag for UserGroup class in the config file
<field name="group">
      <extension key="dependent" value="true" />
      <collection element-type="User" />
</field>

It is working for me. Thanks for your support!

JJ.
Tags
Getting Started
Asked by
Jayavidya
Top achievements
Rank 1
Answers by
Ady
Telerik team
Jayavidya
Top achievements
Rank 1
Share this question
or