ExecuteStoreQuery 不适用于 DateTime setter



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

我的信息类定义:

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);
    }
    
  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();
    

相关内容

  • 没有找到相关文章

最新更新