super_user Ответов: 1

LINQ к entities не распознает метод система'.типа datetime объект todatetime(системы.метод String)'


я пробую этот веб-метод . Здесь vname-это varchar

Что я уже пробовал:

[WebMethod]
public static string GetVo(string fdate, string tdate, string region)
{
string data2 = "[";
try
{
T1 DB = new T1();
var rea = (from rv in DB.tblRV
join Reg in DB.tblR on rv.RegionID equals Reg.RegionID
join vv in DB.tblVV on rv.ID equals vv.ID
where Reg.Region == region
&& !(vv.VName == "")
&& Reg.StartDate == Convert.ToDateTime(fdate) && Convert.ToDateTime(tdate)
group vv by vv.VName into g
select new
{
Name = g.Key,
cnt = g.Select(t => t.Name).Count()
}).ToList();
data2 += rea.ToList().Select(x => "['" + x.Name + "'," + x.cnt + "]")
.Aggregate((a, b) => a + "," + b);
data2 += "]";
}
catch (Exception ex)
{
throw new Exception();
System.Web.HttpContext currentContext = System.Web.HttpContext.Current;
currentContext.Response.Write("<script>alert('" + currentContext.Server.HtmlEncode(ex.ToString()) + "')</script>");
}
return data2;
}



это показывает ошибку

LINQ to Entities does not recognize the method 'System.DateTime ToDateTime(System.String)' method, and this method cannot be translated into a store expression.

Maciej Los

Какая строка вызывает эту ошибку?

Karthik_Mahalingam

эта строка кажется недопустимым синтаксисом
&ампер;&ампер; Рег.Параметр StartDate == Конвертировать.Todatetime (fdate) && конвертировать.ToDateTime(tdate)
то, что вы здесь проверяете..

1 Ответов

Рейтинг:
6

Maciej Los

Заменить те:

GetVo(string fdate, string tdate, string region)

с
GetVo(DateTime fdate, DateTime tdate, string region)


Вышеизложенное означает: используйте правильные типы данных!

Тогда совершенствуйтесь where таким образом:
where Reg.Region == region && vv.VName != "" && Reg.StartDate >= fdate &&  Reg.StartDate <= tdate
//the rest of your statement here


super_user

привет, когда я попробую это сделать ..
[WebMethod]
общественности статической строки GetVo(fdate типа datetime, datetime типа tdate, строку области)
{
строки данные2 = "[";
пробовать
{


T1 DB = новый T1();

ВАР Ри = (от р. в ДБ.tblRV
присоединяйтесь к reg в ДБ.tblRe на РВ.Либо равна Рег.Либо
вступить В. В. В ДБ.tblVV на РВ.Идентификатор равен ВВ.Идентификатор

где
Рег.Области==области
&ампер;&ампер; (ВВ.VName != "")
&ампер;&ампер; Рег.Параметр StartDate == fdate и усилитель; &
Рег.Параметр enddate == tdate

группа ВВ ВВ.VName в г
выберите новый
{
Название = г.Ключ,
УНТ = г.Выберите(Т =&ГТ; Т.Имя).Рассчитывать()
}).Список();
data2 += rea.Вызова метода toList().Выберите(х =&ГТ; "['" + х.Имя + "'," + х.УНТ + "]")
.Совокупный((А, B) =&ГТ; а + "," + б);
данные 2 += "]";


}
поймать (исключение бывший)
{
выбросить новое исключение();
System.Web.HttpContext currentContext = System. Web.HttpContext. Current;
currentContext.Ответ.Писать ("в<сценарий>предупреждение (" + currentContext.Сервер.HtmlEncode (ex.ToString ())+ "') < / script>");
}
вернуться данные2;

}

это показывает ошибку

Последовательность не содержит элементов

super_user

Есть выпадающий список с названиями регионов, и есть два календаря, которые я размещаю с FROMDATE и TODATE ID..


&ЛТ;АСП:метка идентификатор="Метка3" атрибут runat="сервер" текст="выбрать регион"и GT;
&ЛТ;как ASP:dropdownlist с ИД="regiondrop" атрибут runat="сервер" autopostback элемента управления="истинный"
onselectedindexchanged= "regiondrop_SelectedIndexChanged" >

&ЛТ;БР /&ГТ;&ЛТ;БР /&ГТ;

&ЛТ;АСП:метка идентификатор="Метка1" атрибут runat="сервер" текст="начальная дата"и GT;
&ЛТ;вход с ID="fromdate" значение="ДД/ММ/гггг" атрибут runat="сервер" clientidmode="статический" /&ГТ;
< br / & gt;

&ЛТ;АСП:метка идентификатор="Метка2" атрибут runat="сервер" текст="сегодня"&ГТ;

&ЛТ;вход с ID="современной" стоимости="ДД/ММ/гггг" атрибут runat="сервер" clientidmode="статический" /&ГТ;



&ЛТ;БР /&ГТ;&ЛТ;БР /&ГТ;
в <тип входного="кнопка" ID="search_data" атрибут runat="сервер" класса="sear_btn" значение="поиск данных" /&ГТ;
&ЛТ;БР /&ГТ;&ЛТ;БР /&ГТ;