I have to implement sql function in my linq query
the issue that stopped me is can't use the mapped function to variable (it works for field)
public class AMSFunctions
{
public AMSFunctions()
{}
public static DateTime GetTimeOnly(DateTime dateTime)
{
return DateTime.Now;
}
public static DateTime GetDateOnly(DateTime dateTime)
{
return DateTime.Now;
}
}
public class AMSFunctionMappings : FunctionMappingStore
{
public AMSFunctionMappings()
: base()
{
this.Add(new FunctionMapping(typeof(AMSFunctions), "GetTimeOnly", 1,
"GetTimeOnly({0})", "AMS", "dbo"));
this.Add(new FunctionMapping(typeof(AMSFunctions), "GetDateOnly", 1,
"GetDateOnly({0})", "AMS", "dbo"));
}
}
public static bool IsPostedGroup(int groupID, DateTime trxDate)
{
var toReturn = true;
var fn=new DataAccess.AMSFunctionMappings();
var metaData = DataAccess.LinqMetaDataFactory.Create(fn);
var ss = metaData.Transactions
.Where(t => t.TrxDate ==
metaData.Transactions.Where(td => td.InvestorNo == groupID).Select(td => td.TrxDate).Max()
&& t.TrxTime ==
metaData.Transactions.Where(tt => tt.InvestorNo == groupID).Select(tt => tt.TrxTime).Max()
&& t.InvestorNo == groupID
&& AMSFunctions.GetDateOnly(t.TrxDate) >= AMSFunctions.GetDateOnly(trxDate) // <= this is part can't call sql function
)
.Select(t => t);
var transactionEc= ((ILLBLGenProQuery)ss).Execute<EntityCollection<TransactionsEntity>>();
if (transactionEc.Count > 0)
toReturn = true;
else
toReturn = false;
return toReturn;
}
Is this bug or wrong implement calling function...
VS 2008
SQL 2008
adapter mode