【发布时间】: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 模型) 两次。我只想插入一个...我真的不明白为什么。让我抓狂!
提前感谢这个菜鸟问题和我糟糕的英语,再次抱歉,
阿德里安
我在这里看不到重复,或者我错过了什么?第一个是 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