Вопрос

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

Это было полезно?

Решение

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

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

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

Где в таблице у «юнита» есть внешний ключ, который ссылается на другую таблицу, и вы извлекаете свойство этого «юнита» «unit_name»

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

Другие советы

(EDIT неправильно понял вопрос, изменив мой ответ на следующее)

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top