从 Azure 流分析作业生成唯一标识符

问题描述

我正在尝试使用 using System; using System.Drawing; using System.Reflection; using System.Runtime.InteropServices; using System.Windows.Forms; public partial class Form1 : Form { textformatFlags flags = textformatFlags.VerticalCenter | textformatFlags.Left | textformatFlags.LeftAndRightPadding | textformatFlags.NoClipping | textformatFlags.WordBreak; public Form1() { InitializeComponent(); } private void toolTip1_Popup(object sender,PopupEventArgs e) { var tt = sender as ToolTip; var toolTipText = tt.GetToolTip(e.AssociatedControl); var screen = Screen.FromControl(e.AssociatedControl).WorkingArea; using (var g = e.AssociatedControl.CreateGraphics()) using (var font = new Font("Arial",16)) { var sz = TextRenderer.MeasureText( g,toolTipText,font,screen.Size,flags); e.ToolTipSize = new Size(screen.Width - 2,sz.Height + 10); } } private void toolTip1_Draw(object sender,DrawToolTipEventArgs e) { var t = sender as ToolTip; var h = (IntPtr)t.GetType().GetProperty("Handle",BindingFlags.NonPublic | BindingFlags.Instance).GetValue(t); MoveWindow(h,2,e.Bounds.Width - 2,e.Bounds.Height,false); e.DrawBackground(); e.DrawBorder(); using (var font = new Font("Arial",16)) TextRenderer.DrawText(e.Graphics,e.ToolTipText,e.Bounds,Color.Black,flags); } [DllImport("User32.dll")] static extern bool MoveWindow(IntPtr h,int x,int y,int width,int height,bool redraw); } 将数据写入 Azure Stream Analytics Job。我对 sql Server 列使用唯一标识符,但似乎无法从 Id 生成 guid。我怎样才能生成它?我应该更改我的 id 列类型吗?有什么建议吗?

解决方法

您可以尝试使用 GetMetadataPropertyValue 函数。

EventId 属性为输入事件创建唯一 ID (Guid), 这对于主键目的很有用。 EventId 一致 (不是随机的);如果你回到过去并重新阅读相同的输入事件, 流分析将生成相同的 ID。

这是MSDN。您也可以参考Azure Stream Analytics Unique EventId Property is NULL