TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Satria Sudewo
NA
5
7.2k
LINQ in the LightSwitch ...PreprocessQuery() method does not work with delegate.
Nov 22 2011 10:27 AM
I have problems in designing an extended query in the ...PreprocessQuery() Method of a LightSwitch query.
It does not seem to be a LINQ problem itself, but ... there is no LightSwitch Forum ;)
1st of all, I tell you in a simplified way, what works:
partial void NeedHelp_PreprocessQuery(bool Admin, ref IQueryable<Device> query)
{
// Some code...
query = query.Where<Device>(d => d.IsAvailable());
}
The query does not show any compile error and does what it should do.
Now, when I try to put the logic into a method and use its delegate in the query, there's no compile error either, but I get an exception. Here is the code:
private bool Logic(Device TheDevice, bool Admin)
{
return Admin ? true : TheDevice.IsAvailable();
}
partial void NeedHelp_PreprocessQuery(bool Admin, ref IQueryable<Device> query)
{
// Some code...
Func<Device, bool, bool> LogicDelegate = new Func<Device, bool, bool>(this.Logic);
query = query.Where<Device>(d => LogicDelegate(d, Admin));
}
The Exception is in German, I try to translate the essential:
The expression is not supported. Expression: Invoke(value(LightSwitchApplication.ApplicationDataService+<>c_DisplayClass4).LogicDelegate, d, value(LightSwitchApplication.ApplicationDataService+<>c_DisplayClass4).Admin) Message of inner exception: The type "ApplicationData.Implementation.Device" cannot be used for a parameter of type "LightSwitchApplication.Device".
Since I am only using "Device", I do not understand this confusion between
ApplicationData.Implementation.Device
and
LightSwitchApplication.Device
! What am I doing wrong? Or is this kind of call simply not possible in LightSwitch?
Reply
Answers (
4
)
Linq select
Could not response endpoint of wcf service in wpf application