Sql в linq Конвертировать с заказом по условию

0

Может ли кто-нибудь помочь мне в преобразовании ниже sql в Linq? Как я пробовал много других способов без какого-либо успеха. Вот код

select m.Menuname 
from tbl_RoleMapping r 
inner join tbl_menumaster m on Convert(varchar(100),r.Menucode)=Convert(varchar,m.Menucode)
where r.role='application support' and r.productcode='GL'
order by (case when (m.Menuname like '%BookingToolStripMenuItem%' or m.menucode 
                    like '%BookingToolStripMenuItem%')
               then 0 
               else 1 
               end) asc

здесь я бы хотел, чтобы условие поиска было на первом месте, а затем на остальных.

  • 0
    Было бы хорошо узнать ваш код linq
  • 0
    MySQL или MS SQL Server, какой вы используете?
Показать ещё 2 комментария
Теги:
sql-server
linq

1 ответ

0

Наконец я получил желаемый ответ с помощью Linq:

 DataTable dtquery = (from c in dt.AsEnumerable()
                                            orderby c.Field<string>("PMenu").ToLower().Contains(txtMenuName.Text.Trim().ToLower()) ,
                                                    c.Field<string>("Menu").ToLower().Contains(txtMenuName.Text.Trim().ToLower()) descending
                                            select c).CopyToDataTable();
  • 0
    Это не связано с вопросом . Этот код не загружает данные с помощью LINQ. Данные уже были загружены в DataTable другим способом. Код не имеет особого смысла - c.Field<string>("PMenu").ToLower().Contains(txtMenuName.Text.Trim().ToLower()) может возвращать только true или false . Почему бы не вычислить этот флаг в предложении SELECT ? Или использовал вычисляемый столбец DataTable?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню