Help with converty query with RTRIM

Posts   
 
    
sabrogden
User
Posts: 8
Joined: 06-Dec-2008
# Posted on: 13-Nov-2012 20:32:46   

I need help converting this query

SELECT AssetID, Title
FROM Asset
WHERE @assettype = Asset.AssetTypeID AND
LOWER( RTRIM( LTRIM(@externalid) ) ) = LOWER( RTRIM( LTRIM(Asset.ThirdPartyID) ) )

the part i'm not sure about is the RTRIM

daelmo avatar
daelmo
Support Team
Posts: 8245
Joined: 28-Nov-2005
# Posted on: 14-Nov-2012 05:59:03   

You can use nested DBFunctionCalls. The rtrim, tolower, etc on the parameter value could be done in memory. Example:

var ltrimExpr = new DbFunctionCall("LTRIM", new object[] { AssetFields.ThirdPartyId });
var rtrimExpr = new DbFunctionCall("RTRIM", new object[] { ltrimExpr });
var lowerExpr = new DbFunctionCall("LOWER", new object[] { rtrimExpr });
var expField = new EntityField("customComapny", lowerExpr);

var filter = new PredicateExpression();
filter.Add(AssetFields.AssetTypeId == paramToFilter);
filter.Add(expField == paramToFilter.Trim().ToLower());

AssetCollection assets = new AssetCollection();
assets .GetMulti(filter);
David Elizondo | LLBLGen Support Team
sabrogden
User
Posts: 8
Joined: 06-Dec-2008
# Posted on: 15-Nov-2012 00:41:28   

Thanks, ended up going with linq

LinqMetaData linqMetaData = new LinqMetaData(adapter);

List<DbAsset> rtnlist = ( from a in linqMetaData.Asset
                                        where a.AssetId != ignoreId && a.ThirdPartyId.Trim().ToLower() == checkvalue 
                                        select a).ToList<DbAsset>();