2012-07-08 59 views
-3

我是LINQ的新手,上面的代碼對我來說執行得很好。有效載荷的含義-linq

但我不明白爲什麼在最後一句c.payload.Quantity寫入而不是c.Quantity。

當我谷歌搜索時,我才知道從我們從c中的結果得到的有效載荷中獲得的數量值是否意味着有效載荷是filterQuery的最終輸出?

var orderData = new[] 
{ 
new {OrderDate = new DateTime(2011,1,1,8,30,00), ItemID = "100", UnitPrice = 0.99, Quantity =5}, 
new {OrderDate = new DateTime(2011,1,1,8,31,00), ItemID = "200", UnitPrice = 3.99, Quantity =2}, 
new {OrderDate = new DateTime(2011,1,1,9,02,00), ItemID = "200", UnitPrice = 1.50, Quantity =1}, 
new {OrderDate = new DateTime(2011,1,1,9,07,00), ItemID = "100", UnitPrice = 4.10, Quantity =3} 
}; 

var orders = orderData.ToPointStream(Application,ev=>PointEvent.CreateInsert(ev.OrderDate,ev),AdvanceTimeSettings.StrictlyIncreasingStartTime); 

var filterQuery = from o in orders where o.Quantity>=2 select o; 

(from o in filterQuery.ToIntervalEnumerable() where o.EventKind == EventKind.Insert 
select new {o.StartTime,o.EndTime,o.Payload.Quantity}).Dump("Heading"); 
+0

不知道ToPointStream和ToIntervalEnumerable的作用有點難,但它看起來像是其中一個正在創建Payload – MikeKulls 2012-07-09 00:35:17

+0

ToPointStream將cepstream轉換爲點事件流並且ToIntervalEnumerable接受filterQuery輸出並將其翻轉爲間隔(這可能不是如此清楚,因爲我是初學者)。是的,我想filterQuery正在創建一個PayLoad,但我想確保它並知道PayLoad的確切含義。 – Neeha 2012-07-09 00:50:30

回答

0

ToIntervalEnumerable從StreamInsight API和事件模型轉換爲普通的舊.NET序列。在後者中,除了有效載荷之外,還可以訪問系統字段StartTime,EndTime和EventKind。爲了避免命名衝突,有效載荷需要被封裝(假設用戶定義的有效載荷有一個字段'Sta​​rtTime'!)。這是有效載荷字段的含義。

+0

感謝您的回覆。爲了澄清我以前的評論,我想添加ToIntervalEnumerable - 「將間隔事件的CepStream轉換爲實現IEnumerable接口的事件接收器。」我需要間隔事件並將其轉換爲能夠實現IEnumerable接口(即對集合執行迭代)的事件接收器(偵聽器,如有時處理事件的計算機/服務器)。 – Neeha 2012-07-10 03:48:27