0

我无法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();
4

1 回答 1

0

尽管我对您的问题感到困惑,但我并没有感到困惑,而是试图根据我的理解提供帮助。;-)

快速简便的方法:

  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);
    }
    
  2. 如果你想返回你的自定义类的列表,它会很简单

    var list = Context.ExecuteStoreQuery<MyInfo>(Your_Sql_Query_Here).ToList();
    
  3. 如果只需要一个类,我希望 SIngleOrDefault() 可以工作。

    var cls = Context.ExecuteStoreQuery<MyInfo>Your_Sql_Query_Here).SingleOrDefault();
    
  4. 如果您只需要单个值,那么

    var scalar = Context.ExecuteStoreQuery<Object>(Your_Sql_Query_Here).FirstOrDefault();
    
于 2013-09-09T16:19:43.927 回答