LinqDatasource Где пункт на поле принадлежит связанной таблице через внешний ключ - PullRequest
1 голос
/ 25 августа 2011

У меня есть 2 таблицы, электронные письма и владельцы, которые связаны с внешним ключом.В сообщениях электронной почты есть столбец Owner_FID, который является FK для Owner_ID владельцев.

У меня есть источник данных Linq для таблицы сообщений электронной почты, и я хочу отфильтровать его, используя Where On the Owner.Owner_Name

Linq Datasource:

<asp:LinqDataSource ID="LinqEmails" runat="server" ContextTypeName="ACGlobalEmail.GlobalEmailDLDataContext" EntityTypeName="" TableName="Emails" EnableUpdate="False"   Where="Name != null"
Select="new(Emall_Address,
Owner_FID,Contact_Name,Language,Owner.Owner_Name as Name)">
</asp:LinqDataSource>

Я следовал инструкциям MSDN здесь http://msdn.microsoft.com/en-us/library/bb470363.aspx.. это кажется довольно простым, но вместо этого я получаю

Ошибка сервера в приложении '/'.

Нет свойства или поля «Имя» в типе «Электронная почта». Описание: Произошло необработанное исключение при выполнении текущего веб-запроса.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Web.Query.Dynamic.ParseException: Нет свойства или поля «Имя» в типе «Электронная почта»

1 Ответ

1 голос
/ 25 августа 2011

Псевдоним, сделанный As, происходит после фильтрации, выполненной Where.Попробуйте изменить Where на Owner.Owner_Name != null (я этого не пробовал), или, возможно, вам не нужен Owner.

...