C# 在实体中插入数据2次

C# 在实体中插入数据2次,c#,entity-framework,linq,linq-to-entities,C#,Entity Framework,Linq,Linq To Entities,很抱歉,这一定是个新手问题,但我没有找到任何解决方案,而且这个问题持续了两个小时。 我有以下代码: foreach (Stock s in queryStocks) { int checkTimeCount; checkTimeCount = (from ph in entity.StockPriceHistories where ph.StockStockId == s.StockId orderby p

很抱歉,这一定是个新手问题,但我没有找到任何解决方案,而且这个问题持续了两个小时。 我有以下代码:

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(股票价格历史模型)两次。我只想插入一个。。。我真的不明白为什么。让我发疯了

提前谢谢,再次为这个问题和我糟糕的英语道歉

阿德里安

在评论1后编辑

我看不到重复的,或者我遗漏了什么?第一个是stockid为1的股票,第二个是stockid为2的股票。 以下是QueryStock(如果有帮助): var queryStocks=来自实体中的s。股票选择s;//把所有的股票都存入数据库

谢谢你的快速回答

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

日期格式:“2016年2月18日”(dateNow和checkTimeStringStock)

编辑3:

该查询如何可能从EDIT 2屏幕截图上的表返回2个结果

编辑4:我的不好,计数是可以的,因为我在一个foreach

那是noob。 这个foreach在另一个foreach中(Portofolio…),我有2个Portofolio,所以这个结果是正常的

foreach (Portofolio ord in query)
    {

      ...

        foreach (Stock x in queryStockValue)
        {

现在一切正常。

queryStocks中是否存在重复项?您应该一步一步地检查它,并查看它在何处插入了两次。。否则我会选择@stuartd,肯定会有重复的。谢谢你的回答,但我还是很傻,编辑了我的帖子来添加一些信息