public string GenerateGetAllStockInfoData()
 {
     using (var db = new Entities())
     {
         db.Configuration.AutoDetectChangesEnabled = false;
         var lines = db.Companies.Select(item => item.StockID).ToArray();
         return Stock.StockTrade.CombinStockInfoDataFormatString<int>(lines);
     }
 }
        public void Save(List<Stock.StockTradeInfo> tradeInfoList)
        {
            using (var db = new Entities())
            {
                db.Configuration.AutoDetectChangesEnabled = false;
                db.Configuration.ValidateOnSaveEnabled = false;

                db.BulkInsert<TradeDetails>(GetTradeList(tradeInfoList));
                db.BulkInsert<UnOrders>(GetBestTradeList(tradeInfoList));

                _lastSavedTime = DateTime.Now;

            }
        }
        /// <summary>
        /// 產生每日的明細
        /// </summary>
        /// <param name="CurDateTime">指定特定時間重建(只抓年/月/日)</param>
        public static void GenDailyQuotes(DateTime? CurDate)
        {
            DateTime curDate = new DateTime();
            if (CurDate.HasValue)
                curDate = CurDate.Value.Date;
            else
                curDate = DateTime.Now.Date;

            using (Entities db = new Entities())
            {
                //db.Configuration.AutoDetectChangesEnabled = false;
                //db.Configuration.ValidateOnSaveEnabled = false;

                var tradeList = from trade in db.TradeDetails
                                where trade.TradeTime.Year == curDate.Year &&
                                      trade.TradeTime.Month == curDate.Month &&
                                      trade.TradeTime.Day == curDate.Day
                                select trade;
                db.DailyQuotes.AddRange(CreateDailyQuotes(tradeList, curDate));
                db.SaveChanges();
            }
        }
 /// <summary>
 /// 計算昨日收盤
 /// </summary>
 /// <returns></returns>
 private static float CalPrevClosePrice(int StockID, DateTime CurDate)
 {
     using (Entities db = new Entities())
     {
         db.Configuration.AutoDetectChangesEnabled = false;
         db.Configuration.ValidateOnSaveEnabled = false;
         var TradePrevClosePrice = (from item in db.TradeDetails
                                    where item.TradeTime.Year == CurDate.Year &&
                                          item.TradeTime.Month == CurDate.Month &&
                                          item.TradeTime.Day == CurDate.Day &&
                                         item.StockID == StockID
                                    select new {
                                        TradeTime =item.TradeTime,
                                        LatestTradePrice = item.LatestTradePrice
                                    }).ToList();
         if (TradePrevClosePrice.Any())
         {
             return TradePrevClosePrice.First(p => p.TradeTime == TradePrevClosePrice.Select(tradeTime => tradeTime.TradeTime).Max()).LatestTradePrice;
         }
         else
             return 0f;
     }
 }