Я использую LINQtoSQL для создания каскадного удаления IE: если Категория удаляется, то также удаляются все Продукты в этой категории.
У меня уже настроен репозиторий Продуктов (IProductsRepository), и теперь я 'Я работаю в моем репозитории категорий, чтобы добавить логику бизнес-домена для каскада.
В репозитории продуктов используется следующий метод:
public void DeleteProducts(IList<Product> Products)
{
foreach (Product product in Products)
{
productsTable.DeleteOnSubmit(product);
}
productsTable.Context.SubmitChanges();
}
Затем я создаю метод удаления категории в моем репозитории категорий:
public void DeleteCategory(Category category)
{
IProductsRepository productsRepository;
var CascadeDeleteProducts =
from Products in productsRepository.Products
where Products.CategoryID == category.CategoryID
select Products;
productsRepository.DeleteProducts(CascadeDeleteProducts.ToList());
categoriesTable.DeleteOnSubmit(category);
categoriesTable.Context.SubmitChanges();
}
Visual Studio 2010 выдает ошибку в вышеуказанной функции для этой строки: from Products in productsRepository.Products
.Там написано
Использование неназначенной локальной переменной 'productsrepository'
Что может быть причиной этой ошибки?Я создаю репозиторий продуктов через DI с этой строкой: IProductsRepository productsRepository;
.Что я делаю не так?
Редактировать
Я не упомянул, что использую Ninject для создания репозитория продукта.Поэтому я считаю, что эта строка: IProductsRepository productsRepository;
фактически объявляет и инициализирует репозиторий продукта.