Я пытаюсь создать сам ссылающийся объект, используя отображение linqTOsql.Пока что я определенно над головой.Вот код, который у меня есть:
[Table]
public class Category
{
[Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)]
public Int64 catID { get; set; }
public Int64 parentCatID { get; set; }
public string catName { get; set; }
public string catDescription { get; set; }
internal EntityRef<IEnumerable<Category>> _category;
[Association(ThisKey = "parentCatID", Storage = "_category")]
public IEnumerable<Category> category {
get { return _category.Entity; }
set { _category.Entity = value; }
}
}
Мой fakeRepository
определяется следующим образом:
// Fake hardcoded list of categories
private static IQueryable<Category> fakeCategories = new List<Category> {
new Category { catID = 1, parentCatID = 0, catName = "Root", catDescription = "" },
new Category { catID = 2, parentCatID = 1, catName = "Category w/subs", catDescription = "" },
new Category { catID = 3, parentCatID = 1, catName = "Category no subs but now has subs", catDescription = "" },
new Category { catID = 4, parentCatID = 2, catName = "Zub Cat", catDescription = "" },
new Category { catID = 5, parentCatID = 2, catName = "Sub Cat", catDescription = "" },
new Category { catID = 6, parentCatID = 0, catName = "Another Root", catDescription = "" },
new Category { catID = 7, parentCatID = 0, catName = "Ze German Root", catDescription = "" },
new Category { catID = 8, parentCatID = 3, catName = "Brand new cats", catDescription = "" },
new Category { catID = 9, parentCatID = 8, catName = "Brand new cats sub", catDescription = "" },
}.AsQueryable();
Я передаю Category
представлению, как это:
Проблема, с которой я сталкиваюсь, заключается в том, что все это компилируется, но я не получаю ничего, кроме корневых категорий.Model[0].category
возвращает ноль.
Что не так с моим самоссылающимся объектом?
Редактировать
Интересно, он не работает, потому что у меняКонтекст данных linq-to-sql в моем fakeRepository
.Если это так, есть ли способ обойти это?Могу ли я заставить это работать без подключения к базе данных?