Мне нужен совет о том, как исправить следующую ошибку: «Невозможно привести тип System.Int32 к типу System.Object. LINQ to Entities поддерживает только приведение типов примитивов Entity Data Model.»
У меня есть gridview (RadGrid, но это не важно), который связан с загрузкой данных, и все работает отлично.Данные связываются с помощью следующего кода:
var ticketList = (from t in db.Ticket
select t).ToList();
int idKontakt = Convert.ToInt32(Session["authenticatedUI"]);
Kontakt kontakt = new Kontakt();
kontakt = db.Kontakt.SingleOrDefault(k => k.idKontakt == idKontakt);
gvTicketi.DataSource = from t in ticketList
where t.idKontakt == idKontakt
orderby t.idTicket, t.RedniBroj, t.DatumPrijave
select new
{
t.idTicket,
t.idFirma,
t.idKontakt,
t.idManager,
t.idNadredeniTicket,
TicketNumber = t.idNadredeniTicket + "-" + t.RedniBroj,
t.Biljeske,
t.DatumDo,
t.DatumPrijave,
t.OpciPrioritet,
t.Opis,
t.OpisZatvoren,
t.Prioritet,
t.Status,
t.Tip,
t.VrstaPrijave,
t.Zatvoren,
t.DatumZatvaranja,
t.IzdanRacun,
NazivKontakta = t.Kontakt == null ? "Bez kontakta" : t.Kontakt.Ime + " " + t.Kontakt.Prezime,
NazivTvrtke = t.Firma.Naziv
};
Все отлично работает при загрузке страницы, но когда я пытаюсь отфильтровать источник данных, возникает проблема.
Этот код я использую для фильтрации вида сетки:
var ticketList = from t in db.Ticket
select t;
if (txtBrojTicketaGlavni.Text != string.Empty)
{
int glavniBroj = Convert.ToInt32(txtBrojTicketaGlavni.Text);
ticketList = ticketList.Where(t => t.idNadredeniTicket == glavniBroj);
}
int idKontakt = Convert.ToInt32(Session["authenticatedUI"]);
Kontakt kontakt = new Kontakt();
kontakt = db.Kontakt.SingleOrDefault(k => k.idKontakt == idKontakt);
ticketList.ToList();
gvTicketi.DataSource = from t in ticketList
orderby t.idTicket, t.RedniBroj, t.DatumPrijave
select new
{
t.idTicket,
t.idFirma,
t.idKontakt,
t.idManager,
t.idNadredeniTicket,
TicketNumber = t.idNadredeniTicket + "-" + t.RedniBroj,
t.Biljeske,
t.DatumDo,
t.DatumPrijave,
t.OpciPrioritet,
t.Opis,
t.OpisZatvoren,
t.Prioritet,
t.Status,
t.Tip,
t.DatumZatvaranja,
t.VrstaPrijave,
t.Zatvoren,
t.IzdanRacun,
NazivKontakta = t.Kontakt == null ? "Bez kontakta" : t.Kontakt.Ime + " " + t.Kontakt.Prezime,
NazivTvrtke = t.Firma.Naziv
};
if (kontakt.idOvlasti == 2)
{
gvTicketi.MasterTableView.GetColumn("CloseColumn").Visible = false;
}
gvTicketi.DataBind();
Я понял, что проблема в gvTicketi.DataSource, в этой строке, и я уверен, что это происходит, потому что я не преобразовал ticketList в список.Причина, по которой я этого не сделал, заключается в том, что тогда я получаю другую ошибку («Не удается неявно преобразовать тип« System.Collections.Generic.IEnumerable »в« System.Collections.Generic.List ». Существует явное преобразование (вы пропустили)литой?) ")
TicketNumber = t.idNadredeniTicket + "-" + t.RedniBroj,
Любая помощь будет оценена!Спасибо!