【问题标题】:LINQ to SQL array always returns first item?LINQ to SQL 数组总是返回第一项?
【发布时间】:2009-07-17 13:28:13
【问题描述】:

我正在使用 LINQ to SQL。我的数据库有 3 列 Ref、Due_amount、Due_Date。 例如,数据可能如下所示。

10 02/08/2009 00:00:00 175.0000
10 02/09/2009 00:00:00 175.0000
10 02/10/2009 00:00:00 175.0000
10 02/11/2009 00:00:00 175.0000
10 02/12/2009 00:00:00 175.0000
10 02/01/2010 00:00:00 175.0000

我下面的代码返回 6 个元素并且可以工作,但是日期总是 02/08/2009?如果我说将第 2 行的金额更改为 150.0000,它会返回正确的日期 02/09/2009? 有什么想法吗?

private static void PopulateInstalments(string Ref, ResponseMessage responseMsg)
        {
            using (DAO dbContext = new DAO())
            {
                IEnumerable<profile> instalments = (from instalment in dbContext.profile
                                                    where instalment.ref == Ref
                                                    select instalment);

                foreach (profile instalment in instalments)
                {
                    if (responseMsg.Instalments == null)
                        responseMsg.Instalments = new ArrayOfInstalments();
                    Instalment tempInstalment = new Instalment();

                    tempInstalment.DueAmount = instalment.Due_amount;
                    tempInstalment.DueDate = instalment.Due_date == null ? "" : instalment.Due_date.ToString();

                    responseMsg.Instalments.Add(tempInstalment);                    
                }
                            }
        }

谢谢 理查德

【问题讨论】:

  • 从您的 LINQ 生成的 SQL 语句是什么?而且,不确定这是否重要,通常对于 LINQ 2 SQL,返回的类型将是 IQueryable 而不是 IEnumerable,也许也尝试更改那个类型?
  • 嗨,对不起,它实际上是一个 LINQ to 实体。我试过 IQueryable 但没有快乐。在选择分期后添加断点);它确实返回 6 个元素,但这里的日期相同
  • 所以你说选择后立即数据已经不正确?如果是这种情况,那么您提供的代码将无法帮助我们缩小范围。问题似乎与您的数据或您的实体模型有关。有没有更多的背景可以提供给我们?
  • 你是在用VS的工具生成实体模型吗?
  • 是的,我正在使用 VS 的实用程序来生成实体模型。正如我所说,如果值不同,则返回正确的日期。实体正在访问 SQL 表。表上没有主键,Ref是有索引的,唯一的非唯一的和非聚集的。

标签: linq arrays


【解决方案1】:

确保在源中设置了主键列(本例中为 SQL Server 数据库)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多