Первый вопрос несколько открыт в nautre и скорее зависит от используемых вами элементов управления и шаблона проектирования (если таковой имеется), которого вы пытаетесь придерживаться. С точки зрения разработки, если вы проходите модульное тестирование, вы всегда должны учитывать разделение проблем и то, насколько тесно вы хотите привязать элементы управления к своему «домену». Это приложение ASP.NET?
Второй вопрос довольно распространен, особенно в корпоративных сценариях, где у вас есть проблемы с безопасностью и серьезные администраторы баз данных (!). Вы МОЖЕТЕ реализовать выбранные хранимые процедуры. Я бы посоветовал прочитать пост найденный здесь .
Что касается третьего вопроса, снова можно использовать представления в Entity Framework. Есть несколько статей и подводных камней, я бы тоже сначала проверил эту статью .
2 и 3 действительно сводятся к требованиям клиентов. В моем текущем проекте мы используем хранимые процедуры для операций создания, обновления и удаления, в то же время предоставляя прямой доступ к нашим таблицам по мере необходимости. Это эффективно, так как позволяет вам использовать собственные возможности EF и LINQ с точки зрения динамических запросов. Опять же, это соответствует нашим требованиям, но может не соответствовать вашим!
EDIT
Я просто хотел предоставить еще пару ссылок, касающихся вашего последнего комментария, так как они более явно связаны с EntityDataSource. Соответствующая статья SO здесь , и она ссылается на хорошую статью здесь , которая должна вам помочь.
РЕДАКТИРОВАТЬ :
Еще один вариант - добавить определяющий запрос, чтобы контролировать, как EF выполняет выбор. Смотрите здесь .
Ник.