Monday 15 August 2011

Servicestack ORMLite upadte child collection -



Servicestack ORMLite upadte child collection -

i can see can stuff in ormlite:

var client = new client { name = "customer 1", primaryaddress = new customeraddress { addressline1 = "1 commonwealth of australia street", country = "australia" }, orders = new[] { new order { lineitem = "line 1", qty = 1, cost = 1.99m }, new order { lineitem = "line 2", qty = 2, cost = 2.99m }, }.tolist(), }; db.save(customer, references:true);

but updating kid collections?

how done?

to expand on this.

i have useraccount class , image class internal useraccount:

public class useraccount { [autoincrement] public int id { ; set; } public useraccount() { images = new list<userimage>(); } public list<userimage> images { get; protected set; } public userimage image { get; set; } public class userimage { public userimage() { created = datetime.now; } public userimage(string name) { value = name; created = datetime.now; } public string value { get; set; } } }

doing this:

var fullimage = new useraccount.userimage(newimageurl); fullimage.isdefault = true; user.image = fullimage; db.update (fullimage);

doesn't work.

doing this:

var fullimage = new useraccount.userimage(newimageurl); fullimage.isdefault = true; user.images.add(fullimage); db.update (fullimage);

doesn't work...

also doing same having image seperate entity it's own id , setting reference on parent class doesn't work?

i think way:

var image = new userimage(newimageurl); image.isdefault = true; db.save (image); var images = user.images; images.add (image); db.update (new useraccount{id = user.id, image = image, images = images});

i hope wrong because ugly :/

[update]

i have looking much nicer:

db.updateonly (user, onlyfields: a=> new { a.image, a.images}, where: ua => ua.id == user.id);

servicestack ormlite-servicestack

No comments:

Post a Comment