【问题标题】:How to get first and last date from MySQL table using EF in C#?如何在 C# 中使用 EF 从 MySQL 表中获取第一个和最后一个日期?
【发布时间】:2017-03-07 07:16:21
【问题描述】:

这是我获取第一次约会的代码。它有效,我可以在 dateTimepicker 中显示日期。

private void ShowButton_Click(object sender, EventArgs e)
{
    String constring = "datasource=;port=3306;username=;password=";

    MySqlConnection connection = new MySqlConnection(constring);

    int n = Convert.ToInt32(textBox1.Text);
    testEntities dc = new testEntities(); 

    var getfirstDate = dc.table.Where(b => b.number == n).First();

    dateTimePicker1.Text =Convert.ToString (getfirstDate.date);
}

但是,当我尝试对最后一个日期做同样的事情时

var getlastDate = dc.table.Where(b => b.number == n).Last();

出现错误信息:

LINQ to Entities 无法识别方法“project.table Lasttable”方法,并且该方法无法转换为存储表达式。

【问题讨论】:

    标签: c# entity-framework c#-4.0 entity-framework-4 entity-framework-6


    【解决方案1】:

    你可以使用OrderByDescending() + First():

    var lastDate = table.Where(b => b.number == n)
         .OrderByDescending(b => b.Date)
         .First();
    

    【讨论】:

      【解决方案2】:

      为什么不使用排序?

      var getlastDate = dc.table.Where(b => b.number == n).OrderByDescending(b => b.Date).First();
      
      //alternatively to using Where().First();
      
      var getlastDate = dc.table.First(b => b.number == n).OrderByDescending(b => b.Date)
      

      【讨论】:

      • 我需要显示最后一个日期,我的代码适用于第一个日期,但是当我使用 Last() 时显示错误!!
      • 我知道最后一个有错误,这就是我提出这些解决方案的原因 - 尝试第一个
      • 我尝试了您的两个建议,当我尝试在您的代码中将 First 替换为 Last 时,它们可以很好地获得第一个日期和相同的错误! :(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 2015-05-16
      • 1970-01-01
      • 2022-06-10
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多