Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Subsonic 3 - SimpleRepository

I am playing around with Subsonic 3's simple repository and am hitting walls in understanding how to deal with foreign keys...

If I have a product object containing

int ID; 

string name; 

string description; 

Category category; 

int categoryID (this one is just to persist the product's categoryID to the DB)

and a category object containing 

int ID; 

string name;

How can I use the repository to bring back a list of all products with their category object instantiated?

At the moment I have written a linq query which joins on product.categoryID = category.ID which is all well and good, but when I .ToList() the results of this query, the product's Category isn't instantiated.

Is there a way to do this, or do I have to manually instantiate the Category for each product?

Thanks,

Paul

like image 495
Paul Avatar asked Jul 24 '09 09:07

Paul


1 Answers

you need to get linq to populate it,
using something like
var query = from product in repo.All(Product)
join categoryItem in repo.All(Category)
on product.CategoryId equals categoryItem.Id
select new {
ID = product.ID,
name = product.name,
description = product.description,
categoryId= product.CategoryId
category = categoryItem
};

like image 96
Podge Avatar answered Sep 28 '22 05:09

Podge