MVC 3 и LINQ to SQL или Entity Framework - PullRequest
1 голос
/ 04 июня 2011

Я пытаюсь отобразить результаты sproc в моем веб-приложении MVC 3.Тем не менее, sproc вызывает 4 таблицы в одной базе данных и объединяет их с 5 представлениями (только отдельные представления, слава богу) в другой базе данных.Каждая база данных (SQL Server) находится на отдельном сервере, но это не должно иметь значения.

Я прочитал это: http://blogs.msdn.com/b/swiss_dpe_team/archive/2008/02/04/linq-to-sql-returning-multiple-result-sets.aspx и это: http://www.codeproject.com/KB/dotnet/linqToSql5.aspx и до сих пор не могу определить,Я должен использовать классы dataContext или просто встроить прямой SQL.

Возможно, есть лучший способ вернуть мои результаты, чем LINQ to SQL (15 столбцов, 3 разных типа данных)?Мне нужно обновить таблицы, а также.Пользователь будет иметь возможность обновить каждое значение, если он выберет.Является ли эта задача наилучшим образом подходящей для классов структуры сущностей?

Я планирую использовать шаблон репозитория, чтобы я мог изменить технологию доступа к данным, если мне нужно, но я предпочел бы принять правильное решение с первого раунда.

Я надеялся на ресурс, который был бы более современным, чем, скажем, NerdDinner и более надёжным, чем приложения для фильмов для MVC3, которые имеются в большом количестве, особенно реализуя результаты sproc внутри представления.Любые предложения, безусловно, будут оценены.Спасибо.

Ответы [ 3 ]

1 голос
/ 04 июня 2011

Как только вы планируете «обновить» данные, вы будете обрабатывать их с помощью хранимых процедур. И Linq-to-sql, или Entity Framework не помогут вам в этом, потому что они не могут сохранять изменения чего-либо, созданного из произвольного запроса. Вы должны очень тщательно проверить, способны ли вы отследить данные до правильной записи в правильной таблице. Обычно результат хранимой процедуры в основном для просмотра данных, но как только вы захотите изменить данные, вы должны работать с каждой таблицей напрямую или снова использовать некоторую хранимую процедуру, которая будет выполнять задачу. Работа с таблицами из нескольких баз данных в структуре сущностей может быть довольно сложной (EF не поддерживает объекты из нескольких баз данных в одной модели сущностей).

И что вы подразумеваете под 15 столбцами, 3 различными типами данных ? Поддержка хранимых процедур как в Linq-to-sql, так и в Entity Framework возвращает перечисление одного плоского типа данных, содержащего 15 свойств.

0 голосов
/ 04 июня 2011

Поскольку конечная цель будет включать в себя доступ к одним и тем же базам данных с использованием любой технологии, и они будут использовать sql для извлечения данных в любом случае, это действительно субъективный ответ.сосредоточиться больше на реализации.Обе платформы доступа к данным основаны на технологиях ado.net и по большей части одинаково эффективны.

Независимо от технологии, я бы оценил, как осуществляется доступ к данным, и на основании этого принял бы решения о реализации.

0 голосов
/ 04 июня 2011

Я ничего не знаю о том, что linq-to-sql может сделать, чего на самом деле не может Entity Framework, поэтому EF кажется лучшим решением в этом случае. Вы также можете добавить хранимую процедуру в модель Entity Framework, чтобы она могла просто вызывать процедуру и обрабатывать все, что возвращается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...