Въпрос на Subsonic Join

За тези от вас, които са добри с дозвукови!

        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 в bit!

Изглежда, че проблемът е само при свързването на изрази след


person Tablet    schedule 18.11.2008    source източник


Отговори (2)


Открих, че обединенията работят по-добре с помощта на TableColumnSchema, както в горния пример на Northwind, за разлика от името на колоната.

person ptutt    schedule 16.01.2009

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>();

Има пример, който уж работи. Ако това помага на някой да ми помогне!

person Tablet    schedule 18.11.2008