.NET 3.5 Linq Источник данных и соединения - PullRequest
3 голосов
/ 15 сентября 2008

Пробовал новый инструмент для создания сайта Dynamic Data, который поставляется с .NET 3.5. Инструмент использует источники данных LINQ для получения данных из базы данных, используя файл контекста .dmbl для справки. Я пересекаюсь в настройке сетки данных, но мне нужно показать данные из более чем одной таблицы. Кто-нибудь знает, как это сделать с помощью объекта источника данных LINQ?

Ответы [ 4 ]

2 голосов
/ 17 сентября 2008

Если таблицы связаны внешним ключом, вы можете легко ссылаться на обе таблицы, так как они будут автоматически соединяться с помощью linq (вы можете легко увидеть, загляните ли вы в dbml и есть ли стрелка, соединяющая таблицы) - если нет Посмотрите, можете ли вы добавить один.

Для этого вы можете просто использовать что-то вроде этого:

<%# Bind("unit1.unit_name") %>

Где в таблице, 'unit' имеет внешний ключ, который ссылается на другую таблицу, и вы извлекаете свойство этого 'unit' name_name '

Надеюсь, это имеет смысл.

2 голосов
/ 15 сентября 2008

(РЕДАКТИРОВАТЬ неправильно понял вопрос, исправляя мой ответ на следующее)

Ваш LinqDataSource может указывать на представление, которое позволяет вам преодолеть проблему невозможности выразить соединение в реальном элементе. От «Как: создать классы LINQ to SQL, сопоставленные с таблицами и представлениями (конструктор O / R)» :

O / R Designer - это простой объектный реляционный преобразователь, поскольку он поддерживает только отношения отображения 1: 1. Другими словами, класс сущностей может иметь только отношение отображения 1: 1 с таблицей базы данных или представлением. Сложное сопоставление, например сопоставление класса сущности нескольким таблицам, не поддерживается. Однако вы можете сопоставить класс сущности представлению, которое объединяет несколько связанных таблиц.

0 голосов
/ 16 сентября 2008

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

0 голосов
/ 15 сентября 2008

Вы не можете поместить более одного объекта / источника данных в сетку данных. Вам нужно будет создать один ConceptObject, который объединяет открытые свойства сущностей детали. Попробуйте использовать БД -> L2S Entities -> ConceptObject. Вы должны быть очень изобретательны, если модель DB соответствует полю для поля ConceptObject.

...