Отформатируйте дату в запросе.
var _myModel = from _m in model.ModelSearch(word)
select new { date = ((DateTime)_m.Date).ToShortDateString() };
Единственная проблема с этим решением заключается в том, что вы не получите никаких результатов, если ANY из значений даты равно null. Чтобы обойти это, вы можете либо поставить условные операторы в свой запрос, прежде чем вы выбираете дату, которая игнорирует дату null, или вы можете настроить запрос для получения всех результатов, а затем пропустить всю эту информацию с помощью цикла foreach и присвоить значение ко всем датам, которые являются нулевыми до того, как вы сделаете свой новый SELECT.
Пример обоих:
var _test = from _t in adc.ItemSearchTest(word)
where _t.Date != null
select new { date = ((DateTime)_t.Date).ToShortDateString() };
Второй вариант требует другого запроса, чтобы вы могли присваивать значения всем нулям. Это и цикл foreach должны быть перед вашим запросом, который выбирает значения.
var _testA = from _t in adc.ItemSearchTest(word)
select _i;
foreach (var detail in _testA)
{
if (detail.Date== null)
{
detail.Date= Convert.ToDateTime("1/1/0001");
}
}
Просто идея, которую я нашел более простой, чем все примеры javascript.
Если Вы видите это предупреждение:
предупреждение: получатель 'MyCoolClass' является классом переадресации, и соответствующий @interface не может существовать
, Вам нужно к #import
файл, но можно сделать это в файле реализации (.m) и использовать @class
объявление в заголовочном файле.
@class
(обычно) не устраняет необходимость к #import
файлы, она просто спускает требование ближе туда, где информация полезна.
, Например
, Если Вы говорите @class MyCoolClass
, компилятор знает, что может видеть что-то как:
MyCoolClass *myObject;
Это не должно волноваться ни о чем кроме MyCoolClass
, допустимый класс, и это должно зарезервировать комнату для указателя на него (действительно, просто указатель). Таким образом, в Вашем заголовке, @class
удовлетворяет 90% времени.
Однако, если когда-нибудь необходимо создавать или доступ myObject
участники, необходимо будет сообщить компилятору, каковы те методы. В этой точке (по-видимому, в Вашем файле реализации), Вам будет нужно к #import "MyCoolClass.h"
, для сообщения дополнительной информации компилятора вне просто, "это - класс".
Обычная практика использует @class в заголовочных файлах (но Вам все еще нужен к #import суперкласс), и #import в файлах реализации. Это избежит любых круговых включений, и это просто работает.
Используйте предописание в заголовочном файле в случае необходимости, и #import
заголовочные файлы для любых классов, которые Вы используете в реализации. Другими словами, Вы всегда #import
файлы, которые Вы используете в своей реализации, и если необходимо сослаться на класс в заголовочном файле, используете предописание также.
исключение к этому - то, что Вы должны #import
класс или формальный протокол, которому Вы наследовались в Вашем заголовочном файле (в этом случае, Вы не должны были бы импортировать его в реализации).
Посмотрите на документацию Языка программирования Objective C относительно ADC
Под разделом по Определению Класса | Интерфейс Класса, который это описывает, почему это сделано:
@class директива минимизирует объем кода, замеченный компилятором и компоновщиком, и является поэтому самым простым способом дать предописание имени класса. Будучи простым, это избегает потенциальных проблем, которые могут идти с импортом файлов, которые импортируют все еще другие файлы. Например, если один класс объявляет переменную экземпляра со статическим контролем типов другого класса, и их два интерфейсных файла импортируют друг друга, никакой класс не может скомпилировать правильно.
я надеюсь, что это помогает.
Три простых правила:
#import
суперкласс и принятые протоколы в файлах заголовков (файлы .h
). #import
все классы и протоколы, вы отправляете сообщения в реализации ( .m
файлы). Если вы делаете предварительное объявление в файлы реализации, то вы, вероятно, делаете что-то не так.