Код:
public static IQueryable GetAllBy_HesapAdiFirmaAdiCariNo_Turu_bypage_short(string filter, string tip, int page_size, int page_index, string sortcolumn, bool sortdirection)
{
//bool tip: 0-tümü, 1-son kullanici, 2-bayi, 3- tedarikçi
VeriyazDBDataContext db = new VeriyazDBDataContext(); db.Connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
var cariKayitlari = DAL.DAOCari.SelectAll();
var kayitlar = (from rows in cariKayitlari
where rows.HESAPADI.ToLower().Contains(filter.ToLower()) ||
(rows.CARITURU == "Bireysel" ? rows.B_ADSOYAD.ToLower().Contains(filter.ToLower()) :
rows.K_FIRMAADI.ToLower().Contains(filter.ToLower())) ||
(rows.CARITURU == "Bireysel" ?
rows.B_ADSOYAD.ToLower().Contains(filter.ToUpper()) :
rows.K_FIRMAADI.ToLower().Contains(filter.ToUpper())) ||
rows.ID.ToString().Contains(filter)
select rows);
switch (tip)
{
case ("Tümü"):
default:
{
break;
}
case ("Son Kullanici"):
{
kayitlar = kayitlar.Where(rows => rows.SONKULLANICI == true);
break;
}
case ("Bayi"):
{
kayitlar = kayitlar.Where(rows => rows.BAYI == true);
break;
}
case ("Tedarikçi"):
{
kayitlar = kayitlar.Where(rows => rows.TEDARIKCI == true);
break;
}
}
var kayitlar2 = from rows in kayitlar
select new
{
HESAPNO = rows.ID,
HESAPADI = rows.HESAPADI,
CARIADI = (rows.CARITURU == "Bireysel" ? rows.B_ADSOYAD : rows.K_FIRMAADI)
//BAKIYE= "",
//PARABIRIMI = rows.LISTEPARABIRIMI
};
if (sortcolumn != "")
{
if (sortdirection)
kayitlar2 = kayitlar2.Order(sortcolumn, SortDirection.Ascending).AsQueryable();
else
kayitlar2 = kayitlar2.Order(sortcolumn, SortDirection.Descending).AsQueryable();
}
return kayitlar2.Skip(page_size * (page_index)).Take(page_size);
}
Я вызывал этот метод из двух разных System.Web.UI.Page
классов в приведенном ниже методе
- CariHesaplar
- YeniBilet.
private void cari_paging_button_yenile()
{
Button_CariIleri.Enabled = true;
Button_CariGeri.Enabled = true;
if (CariPageIndex == 0)
Button_CariGeri.Enabled = false;
string tumu = "Tümü";
if (DAL.DAOCari.GetAllBy_HesapAdiFirmaAdiCariNo_Turu_bypage_short(TextBox_CariArama.Text, tumu, CariPageSize, CariPageIndex + 1, CariSortColumn, CariSortDirection).Count() == 0)//problem occured in this row
Button_CariIleri.Enabled = false;
}
Проблема: Когда я звоню GetAllBy_HesapAdiFirmaAdiCariNo_Turu_bypage_short
в CariHesaplar, я могу получить счет в операторе if в cari_paging_button_yenile()
. Однако, в YeniBilet, когда я пытаюсьчтобы получить Count () я получаю
Ошибка 19 «System.Linq.IQueryable» не содержит определения для «Count» и нет метода расширения «Count», принимающего первый аргумент типа 'System.Linq.IQueryable 'может быть найдено (вам не хватает директивы using или ссылки на сборку?) C: \ Users \ yigit \ Desktop \ PROTicari (11.04.2011) \ UI \ MusteriDestek \ YeniBilet.aspx.cs 257 17 UI
Я пытался решить многие проблемы, но ничего не помогло. Впоследствии я подумал, что это может быть пропущенный оператор using
в начале страницы. Я проверил оба класса using
sтолько разные были using System.Linq.Dynamic;
но у них обоих было using System.Linq;
так что я думал, что это не моглоЭто не проблема. Но тогда я написал using System.Linq.Dynamic;
на YeniBilet, который тоже выдавал ошибку, и ошибка исчезла.
У меня вопрос, почему ссылка using System.Linq.Dynamic;
не добавляется, когда на странице уже есть using System.Linq;
не Linq.Dynamic
как подмножество Linq
? Почему я должен снова добавить его ссылку?