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
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
};
This article appears to address "eager loading" with subsonic: http://tryingthisagain.com/2007/12/03/hijacking-the-subsonic-relationship-load-process/
来源:https://stackoverflow.com/questions/1176594/subsonic-3-simplerepository