LINQ to Entities无法识别方法'Int32 ToInt32(Boolean)'

时间:2015-03-20 07:42:54

标签: c# linq entity-framework casting boolean

虽然(Goster)字段类型在Genel_KullaniciMenu上下文中是整数。此查询正在运行。但是我将该字段的类型更改为数据库和实体类的位。然后查询不起作用。它给出了错误,例如" LINQ to Entities无法识别方法' Int32 ToInt32(布尔)'"。我可以在此查询中更改什么?谢谢你的帮助。

var query = (from K in
(
 (from Genel_Form in _context.Form
  join Genel_MenuNesne in _context.MenuNesne on new { GenelFormID = Genel_Form.GenelFormID } equals new { GenelFormID = (Genel_MenuNesne.GenelFormID) } into Genel_MenuNesne_join
  from Genel_MenuNesne in Genel_MenuNesne_join.DefaultIfEmpty()
  join Genel_KullaniciMenu in _context.KullaniciMenu on new { GenelMenuNesneID = Genel_MenuNesne.GenelMenuNesneID } equals new { GenelMenuNesneID = (Genel_KullaniciMenu.GenelMenuNesneID) } into Genel_KullaniciMenu_join
  from Genel_KullaniciMenu in Genel_KullaniciMenu_join.DefaultIfEmpty()
  join Genel_FormTuru in _context.FormTuru on Genel_Form.GenelFormTuruID equals Genel_FormTuru.GenelFormTuruID into Genel_FormTuru_join
  from Genel_FormTuru in Genel_FormTuru_join.DefaultIfEmpty()
  join Genel_MenuGrup in _context.MenuGrup on new { GenelMenuGrupID = (Genel_MenuNesne.GenelMenuGrupID) } equals new { GenelMenuGrupID = Genel_MenuGrup.GenelMenuGrupID } into Genel_MenuGrup_join
  from Genel_MenuGrup in Genel_MenuGrup_join.DefaultIfEmpty()
  join Genel_KullaniciRol in _context.KullaniciRol on new { GenelKullaniciID = (Genel_KullaniciMenu.GenelKullaniciID) } equals new { GenelKullaniciID = Genel_KullaniciRol.GenelKullaniciID } into Genel_KullaniciRol_join
  from Genel_KullaniciRol in Genel_KullaniciRol_join.DefaultIfEmpty()
  where
    !Genel_FormTuru.FormTuruAdi.Contains("Mobile Ekranlar") &&

          (from Genel_RolGrup in _context.RolGrup
           where

                   (from Genel_KullaniciRol0 in _context.KullaniciRol
                    where
                      Genel_KullaniciRol0.GenelKullaniciID == genelKullaniciID
                    select new
                    {
                        Genel_KullaniciRol0.GenelRolID
                    }).Contains(new { GenelRolID = Genel_RolGrup.GenelRolID })
           select new
           {
               Genel_RolGrup.GenelGrupID
           }).Contains(new { GenelGrupID = Genel_KullaniciMenu.GenelGrupID })
  select new
  {
      MenuGrupAdi = (Genel_MenuGrup.MenuGrupAdi + "-" + Genel_FormTuru.FormTuruAdi.ToUpper()),
      Baslik = (Genel_Form.FormKodu + " " + Genel_MenuNesne.MenuNesneAdi),
      Genel_Form.FormNameSpaceAdi,
      Genel_Form.FormClassAdi,
      Goster = Genel_KullaniciMenu.Goster,       
      GenelGrupID = Genel_KullaniciMenu.GenelGrupID,
      GenelRolID = Genel_KullaniciRol.GenelRolID,
      GenelMenuGrupID = Genel_MenuNesne.GenelMenuGrupID,
      GenelFormTuruID = Genel_Form.GenelFormTuruID,
      GenelMenuNesneID = Genel_MenuNesne.GenelMenuNesneID
  }))
group K by new
{
K.GenelRolID,
K.MenuGrupAdi,
K.Baslik,
K.FormNameSpaceAdi,
K.FormClassAdi,
K.GenelMenuGrupID,
K.GenelFormTuruID,
K.GenelMenuNesneID
} into g
orderby
g.Key.GenelMenuGrupID,
g.Key.GenelFormTuruID,
g.Key.GenelMenuNesneID
select new
{
g.Key.MenuGrupAdi,
g.Key.Baslik,
g.Key.FormNameSpaceAdi,
g.Key.FormClassAdi,
Goster = g.Max(p => p.Goster),

}).ToList()

0 个答案:

没有答案