C# 我想为使用Linq to Sql读取的数据集中的每条记录添加一个唯一的Id
这是我的阅读:C# 我想为使用Linq to Sql读取的数据集中的每条记录添加一个唯一的Id,c#,sql,linq,C#,Sql,Linq,这是我的阅读: OnSiteV3DataContext _v3Context = new OnSiteV3DataContext(); var dataset1 = (from sp in _v3Context.SQLPendingEvents where (sp.EventType.ToString() == str100w)
OnSiteV3DataContext _v3Context = new OnSiteV3DataContext();
var dataset1 = (from sp in _v3Context.SQLPendingEvents
where
(sp.EventType.ToString() == str100w)
select new
{
sp.KeyDeviceID,
sp.UpdateTime ,
sp.EventClass ,
sp.EventCode ,
sp.EventType ,
sp.EventDateTime ,
sp.KeyPropertyID,
sp.KeyEntityID,
sp.EventText,
sp.KeyUserID,
sp.EventImage,
sp.TaskType ,
sp.TaskSubType ,
sp.UniqueTaskID
}).ToList();
dataset1 = dataset1.Where(sp => !sp.KeyDeviceID.ToString().Contains('~')).ToList();
gvSqlPendingEvent.DataSource = dataset1;
gvSqlPendingEvent.DataBind();
数据集没有唯一的标识符来标识单个记录,所以我想添加一个。我希望第一列是这个标识符——它可以基于行数。如何实现这一点?您可以将查询投影移动到客户端,并使用以下重载:
检查这个答案,可能是重复的谢谢-这是完美的。
var dataset1 = _v3Context.SQLPendingEvents
.Where(sp => sp.EventType.ToString() == str100w)
.AsEnumerable() // further processing occurs on client
.Select((sp,index) => new {
ID = index + 1,
sp.KeyDeviceID,
sp.UpdateTime ,
sp.EventClass ,
sp.EventCode ,
sp.EventType ,
sp.EventDateTime ,
sp.KeyPropertyID,
sp.KeyEntityID,
sp.EventText,
sp.KeyUserID,
sp.EventImage,
sp.TaskType ,
sp.TaskSubType ,
sp.UniqueTaskID
}).ToList();