【问题标题】:Inserting data 2 times in entity在实体中插入数据 2 次
【发布时间】:2016-02-17 16:38:18
【问题描述】:

对不起,这一定是一个新手问题,但我没有找到任何解决方案,现在仍然在这个问题上 2 小时。 我有以下代码:

foreach (Stock s in queryStocks)
{
  int checkTimeCount;

  checkTimeCount = (from ph in entity.StockPriceHistories
                    where ph.StockStockId == s.StockId
                    orderby ph.StockPriceHistoryDate descending
                    select ph.StockPriceHistoryDate).Count();
  if (checkTimeCount != 0)
  {
    var checkTimeStock = (from ph in entity.StockPriceHistories
                          where ph.StockStockId == s.StockId
                          orderby ph.StockPriceHistoryDate descending
                          select ph.StockPriceHistoryDate).First();

    string checkTimeStringStock = checkTimeStock.ToShortDateString();

    if (dateNow != checkTimeStringStock)
    {
      StockPriceHistory ph = new StockPriceHistory();
      ph.StockPriceHistoryDate = DateTime.Now;
      ph.StockStockId = s.StockId;
      ph.Value = s.Value;
      entity.StockPriceHistories.Add(ph);
    }
  }
  else
  {
    StockPriceHistory ph = new StockPriceHistory();
    ph.StockPriceHistoryDate = DateTime.Now;
    ph.StockStockId = s.StockId;
    ph.Value = s.Value;
    entity.StockPriceHistories.Add(ph);
  }

}


                // Submit the changes to the database.
                #region SaveChangesDB
                try
                {
                    entity.SaveChanges();
                }
                catch
                {
                // Provide for exceptions.
                }
                #endregion

这个每次插入 ph(StockPriceHistory 模型) 两次。我只想插入一个...我真的不明白为什么。让我抓狂!

提前感谢这个菜鸟问题和我糟糕的英语,再次抱歉,

阿德里安

EDIT 在评论 1 之后:

我在这里看不到重复,或者我错过了什么?第一个是 stockid 1 的 Stock,第二个是 stockid 2 的 stock。 如果可以提供帮助,这里是 queryStocks: var queryStocks = from s in entity.Stocks select s; // 获取数据库中的所有股票

感谢您的快速回答

编辑 2: 插入结果和日期格式

日期格式:“18/02/2016”(dateNow 和 checkTimeStringStock)

编辑 3:

这个查询怎么可能从 EDIT 2 屏幕截图上的表中返回 2 个结果?

编辑 4:我的错,计数没问题,因为我在 foreach 中

【问题讨论】:

  • queryStocks中会不会有重复项?
  • 你应该逐步检查它,看看它在哪里插入了两次..否则我会选择@stuartd,必须有重复..
  • 感谢您的回答,但我仍然卡住,编辑我的帖子以添加一些信息

标签: c# entity-framework linq linq-to-entities


【解决方案1】:

那是菜鸟。 这个 foreach 在另一个 foreach(投资组合...)中,我有 2 个投资组合,所以这个结果是正常的。

foreach (Portofolio ord in query)
    {

      ...

        foreach (Stock x in queryStockValue)
        {

现在好了。

【讨论】:

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