2012-02-10 3 views
0

Я разрабатываю веб-приложение в ASP.NET MVC3 с C# и Razor.Возможно ли запрограммировать запрос к базе данных, где отношения DB-таблиц были добавлены в ADO.NET, а не в самой БД?

Приложение должно использовать существующую базу данных, разработанную около 8 лет назад, где нет нет физической связи между таблицами. Другие приложения, использующие один и тот же БД, создают отношения программно с помощью объединений.

В моем приложении для некоторых таблиц базы данных я создал модель AD4.NET. Теперь, чтобы воспользоваться возможностями встроенных выражений LINQ, особенно свойств навигации , я хотел бы создать отношения на модели ADO.NET.

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

+0

Что вы подразумеваете под физическими связями между таблицами? Означает ли это, что нет внешних ключей? Если это так, вы все равно можете делать заявления JOIN. –

+0

точно нет внешних ключей в базе данных SQL. Я могу объединить LINQ, но я не могу использовать свойства навигации, которые позволяют вам перескакивать из одной таблицы в другую, просто используя точечную нотацию – CiccioMiami

ответ

1

Отношения в ADO.NET могут быть физическими (с ограничениями внешних ключей в базе данных) или логическими (отношение определено только в приложении).

Вы можете добавить отношения вручную в конструктор, и у вас будут навигационные свойства.

+0

за ваш ответ. Однако это не то, что я искал. Мне было интересно, правильно ли выполняются запросы с использованием LINQ, если внешние ключи присутствуют только в модели ADO.NET, а не в реальной базе данных SQL. – CiccioMiami

+0

Выражения LINQ преобразуются в SQL, и фильтрация выполняется на стороне сервера. Другими словами, если вы определяете отношения между таблицами, вы получите полезные свойства навигации, которые вам нужны, и выражения корректно преобразуются в SQL-запросы. Возможно, это помогло бы: «существование свойств отношений более важно на стороне результатов запроса, чем как часть самого запроса». Оформление заказа для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic11 –