Я ищу реализацию LINQ to SQL, но я стараюсь понять, как мы будем добавлять бизнес-правила контроля доступа, такие как клиент, который может просматривать только их заказы. В ADO.NET данных услуг, intercptors запрос делать именно то, что я после этого, и можно увидеть, как проверить на обновление/вставка/удаление, но есть эквивалент этого:LINQ to sql interceptor
[QueryInterceptor("Orders")]
public IQueryable<Orders> OnQueryOrders(IQueryable<Orders> orderQuery)
{
return from o in orderQuery
where o.Customers.ContactName == HttpContext.Current.User.Identity.Name
select o;
}
Или точн мне нужно управление через аксессуры по линии: GetOrdersByCustomer (string customerId)
Лично я нахожу что-то вроде GetOrdersByCustomer намного легче понять и поддерживать. Здесь перехватчики чувствуют себя ненужными. Подумайте о следующем человеке, который должен будет поддерживать ваш код и кто не может быть таким умным, как вы. –
Это было бы хорошо для простых сценариев, но я хочу разрешить гораздо более богатое построение запросов, так что в конце концов вы получите более 100 аксессуаров, что в свою очередь будет путать/пропустить/кошмар для поддержки или рефакторинга. Хотя перехватчики могут вводить в заблуждение, они позволяют работать с кодовым кодом последовательно, но думают, что мысли Джастина ближе к тому, что мы получим в итоге – steve