Hello. i am new on Linq and i need some help. I have a table named MenuItemOptionTypes with those colons: MenuItemOptionTypeID(integer), MenuItemTypeID(integer), MenuItemOptionTypeName(varchar), SortOrder(integer) and ParentMenuItemOptionTypeID.
I want to implement this SQL interogation:
Select MenuItemOptionTypeName from MenuItemOptionTypes where MenuItemOptionTypeID == (select distinct ParentMenuItemOptionTypeID from MenuItemOptionTypes where MenuItemTypeID==x)
x - parameter
and i wrote something like
var MIOT = from MenuItemOptionType miot in context.MenuItemOptionTypes
where miot.MenuItemOptionTypeID == ((from MenuItemOptionType miot_ in context.MenuItemOptionTypes
where miot_.MenuItemTypeID == x
select miot_.ParentMenuItemOptionTypeID).Distinct().Any<MenuItemOptionType>)
select miot.MenuItemOptionTypeName;
but cant figure out how to solve the error: operator == cannot be applied to operands of type integer and method group.
What i want to select is MenuItemOptionTypeName where MenuItemOptionTypeID == ParentMenuItemOptionTypeID. In my table ParentMenuItemOptionTypeID can have many times the same value, so that is why i want to be distinct.
var first = (from MenuItemOptionType miot_ in context.MenuItemOptionTypes
where miot_.MenuItemTypeID == MenuItemTypeID
&& miot_.ParentMenuItemOptionTypeID > 0
select miot_.ParentMenuItemOptionTypeID).Distinct();
var MIOT = from MenuItemOptionType miot in context.MenuItemOptionTypes
where first.Contains(miot.MenuItemOptionTypeID)
select miot.MenuItemOptionTypeName;
seiko88
Member
41 Points
91 Posts
LINQ interogation
Feb 29, 2012 04:04 PM|LINK
Hello. i am new on Linq and i need some help. I have a table named MenuItemOptionTypes with those colons: MenuItemOptionTypeID(integer), MenuItemTypeID(integer), MenuItemOptionTypeName(varchar), SortOrder(integer) and ParentMenuItemOptionTypeID.
I want to implement this SQL interogation:
Select MenuItemOptionTypeName from MenuItemOptionTypes where MenuItemOptionTypeID == (select distinct ParentMenuItemOptionTypeID from MenuItemOptionTypes where MenuItemTypeID==x)
x - parameter
and i wrote something like
var MIOT = from MenuItemOptionType miot in context.MenuItemOptionTypes
where miot.MenuItemOptionTypeID == ((from MenuItemOptionType miot_ in context.MenuItemOptionTypes
where miot_.MenuItemTypeID == x
select miot_.ParentMenuItemOptionTypeID).Distinct().Any<MenuItemOptionType>)
select miot.MenuItemOptionTypeName;
but cant figure out how to solve the error: operator == cannot be applied to operands of type integer and method group.
What i want to select is MenuItemOptionTypeName where MenuItemOptionTypeID == ParentMenuItemOptionTypeID. In my table ParentMenuItemOptionTypeID can have many times the same value, so that is why i want to be distinct.
adamturner34
Contributor
3964 Points
999 Posts
Re: LINQ interogation
Feb 29, 2012 04:47 PM|LINK
Use the word "equals" instead of ==
seiko88
Member
41 Points
91 Posts
Re: LINQ interogation
Mar 01, 2012 08:48 AM|LINK
I found the solution.
var first = (from MenuItemOptionType miot_ in context.MenuItemOptionTypes
where miot_.MenuItemTypeID == MenuItemTypeID
&& miot_.ParentMenuItemOptionTypeID > 0
select miot_.ParentMenuItemOptionTypeID).Distinct();
var MIOT = from MenuItemOptionType miot in context.MenuItemOptionTypes
where first.Contains(miot.MenuItemOptionTypeID)
select miot.MenuItemOptionTypeName;