Subsonic Join проблема - PullRequest
       8

Subsonic Join проблема

0 голосов
/ 18 ноября 2008

Для тех из вас, кто приличен с дозвуковой!

        TblNewsCollection col =
            new Select().From(Tables.TblNews)
                .InnerJoin(Tables.TblContent)
                .Paged(currentPage, pageSize)
                .OrderDesc(TblContent.Columns.PubDate)
                .ExecuteAsCollection<TblNewsCollection>();

Выше работает, нет проблем, но когда я пытаюсь добавить предложение where

        TblNewsCollection col =
            new Select().From(Tables.TblNews)
                .InnerJoin(Tables.TblContent)
                .Where(TblContent.Columns.UserFK)
                .IsEqualTo(guidUserFK)
                .Paged(currentPage, pageSize)
                .OrderDesc(TblContent.Columns.PubDate)
                .ExecuteAsCollection<TblNewsCollection>();

Я получаю это сообщение

System.InvalidCastException: Object must implement IConvertible.
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType) 
System.InvalidCastException: Failed to convert parameter value from a Guid to a String.

Я пробовал это из других полей, например, битовое поле в базе данных, которое говорит, что не может конвертировать из bool в бит!

Кажется, проблема только в том, где операторы после объединений

Ответы [ 2 ]

1 голос
/ 16 января 2009

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

0 голосов
/ 18 ноября 2008
Northwind.CustomerCollection customersByCategory = new Select()
    .From(Northwind.Customer.Schema)
    .InnerJoin(Northwind.Order.Schema)
    .InnerJoin(Northwind.OrderDetail.OrderIDColumn, Northwind.Order.OrderIDColumn)
    .InnerJoin(Northwind.Product.ProductIDColumn, Northwind.OrderDetail.ProductIDColumn)
    .Where("CategoryID").IsEqualTo(5)
    .ExecuteAsCollection<Northwind.CustomerCollection>();

Есть пример, который предположительно работает. Если это кому-нибудь поможет, помоги мне!

...