У меня есть этот код в MVC c #, который его концепция в порядке. «x.Letter.Kind» - это номер, который я хочу перевести в текст при создании списка. Поэтому я написал функцию (LetterType), которая берет байт и возвращает связанный с ним текст. Но когда программа запускается, она выдает мне сообщение об ошибке:
{"LINQ to Entities не распознает метод метода System.String LetterType (Byte) ', и этот метод нельзя преобразовать в выражение хранилища."}
Я не могу понять, что это значит. кто-нибудь может мне помочь в этом вопросе?
Спасибо
public JsonResult GetLetterList(DataTablesParam param)
{
int fld_id = 23571;
int userId = 1454;
int totalCount = 0;
List<ViewLetterInformation> list = new List<ViewLetterInformation>();
using (WebECartableEntities db = new WebECartableEntities())
{
int pageNo = 1;
if (param.iDisplayStart >= param.iDisplayLength)
{
pageNo = param.iDisplayStart / param.iDisplayLength + 1;
}
totalCount = db.Referrings.Where(x => x.usr_Receiver__Id == userId && x.fld_Id == fld_id).Count();
list = db.Referrings.Where(x => x.usr_Receiver__Id == userId && x.fld_Id == fld_id).OrderBy(x => x.Letter_Id).Skip((pageNo - 1) * param.iDisplayLength).Take(param.iDisplayLength).Select(x => new ViewLetterInformation
{
Letter_Id = x.Letter_Id,
ProjectCode = x.Letter.Project.Code,
LetterType = LetterType(x.Letter.Kind) //This line gives error
Ref_subject = x.Subject
}).ToList();
return Json(new
{
aaData = list,
sEcho = param.sEcho,
iTotalDisplayRecords = totalCount,
iTotalRecords = list.Count()
}, JsonRequestBehavior.AllowGet);
}
}
}
private string LetterType(byte LetterType)
{
string result = "";
switch (LetterType)
{
case 0:
case 4:
case 8:
result = "Import";
break;
case 1:
case 5:
case 9:
result = "Export";
break;
case 2:
case 6:
case 10:
result = "Internal";
break;
default:
result = "";
break;
}
return result;
}
если я использую
LetterType = x.Letter.Kind.toString()
вместо
LetterType = LetterType(x.Letter.Kind)
работает нормально, но мне нужны его эквивалентные текстовые данные.
Спасибо