views:

39

answers:

1

Yet another newbie SubSonic/ActiveRecord question. Suppose I want to insert a couple of records, currently I'm doing this:

using (var scope = new System.Transactions.TransactionScope())
{
    // Insert company
    company c = new company();
    c.name = "ACME";
    c.Save();

    // Insert some options
    company_option o = new company_option();
    o.name = "ColorScheme";
    o.value = "Red";
    o.company_id = c.company_id;
    o.Save();
    o = new company_option();
    o.name = "PreferredMode";
    o.value = "Fast";
    o.company_id = c.company_id;
    o.Save();

    scope.Complete();
}

Stepping through this code however, each of the company/company_option constructors go off and create a new myappDB object which just seems wasteful.

Is this the recommended approach or should I be trying to re-use a single DB object - and if so, what's the easiest way to do this?

A: 

I believe you can use the same object if you want to by setting its IsNew property to true, then change its data properties, save it again, repeat. Easy enough.

I 'm not so sure that you should bother, though. It depends on how bad those constructors are hurting you.

Jon