ExecuteStoreQuery не работает с установщиком DateTime
У меня проблемы с получением ExecuteStoreQuery
правильно работать с моим пользовательским классом, который имеет DateTime
член. Он получает значение по умолчанию DateTime
значение (1/1/0001 12:00:00 AM) вместо того, что находится в базе данных.
List<MyInfo> results = context.ExecuteStoreQuery<MyInfo>(SELECT [StartTime] FROM [dbo].[Records] WHERE [Type] = 1).ToList();
Определение класса MyInfo:
public class MyInfo
{
private DateTime startTime;
public DateTime StartTime
{
get { return startTime; }
set { startTime = value; }
}
}
Однако, если я сделаю запрос, используя DateTime
вместо MyInfo возвращается правильная дата.
List<DateTime> results = context.ExecuteStoreQuery<DateTime>(SELECT [StartTime] FROM [dbo].[Records] WHERE [Type] = 1).ToList();
1 ответ
Хотя я запутался в вашем вопросе, но вместо того, чтобы запутаться, я стараюсь помочь, исходя из того, что понимаю.;-)
Быстрый и простой способ:
Если у вас возникли проблемы с возвратом только даты и времени, вы можете использовать
var ls = context.ExecuteStoreQuery<MyInfo>("Select StartTime from YourTable"); List<DateTime> dt= new List<DateTime>(); foreach(MyInfo i in ls) { dt.Add(ls.StartTime); }
Если вы хотите вернуть список вашего пользовательского класса, то это будет просто
var list = Context.ExecuteStoreQuery<MyInfo>(Your_Sql_Query_Here).ToList();
Если требуется только один класс, я надеюсь, что SIngleOrDefault() будет работать.
var cls = Context.ExecuteStoreQuery<MyInfo>Your_Sql_Query_Here).SingleOrDefault();
Если вам нужно только одно значение, то
var scalar = Context.ExecuteStoreQuery<Object>(Your_Sql_Query_Here).FirstOrDefault();