C# LINQ不能隐式转换
似乎在尝试为我的linq变量设置类时遇到问题: 下面是用于处理数据库数据的类:C# LINQ不能隐式转换,c#,linq,entity-framework,implicit-conversion,C#,Linq,Entity Framework,Implicit Conversion,似乎在尝试为我的linq变量设置类时遇到问题: 下面是用于处理数据库数据的类: public class Result { public bool LongerThan10Seconds { get; set; } public int Id { get; set; } public DateTime CompletionTime { get; set; } public double longitude { get; set; } public doub
public class Result
{
public bool LongerThan10Seconds { get; set; }
public int Id { get; set; }
public DateTime CompletionTime { get; set; }
public double longitude { get; set; }
public double latitude { get; set; }
}
foreach (var query in data.AssetStatusHistories
.Where(x => x.TimeStamp <= ft)
.Where(x => x.AssetID == guid))
{
if (lastResult != null)
{
if ((query.TimeStamp - lastResult.CompletionTime).TotalSeconds > 10)
{
dataResults.Add(new Result() { Id = query.ID,
longitude = query.Longitude,
latitude = query.Latitude });
}
lastResult = query; // <-- Error Is Here
}
}
然后,我使用此LINQ语句从特定数据库获取数据:
public class Result
{
public bool LongerThan10Seconds { get; set; }
public int Id { get; set; }
public DateTime CompletionTime { get; set; }
public double longitude { get; set; }
public double latitude { get; set; }
}
foreach (var query in data.AssetStatusHistories
.Where(x => x.TimeStamp <= ft)
.Where(x => x.AssetID == guid))
{
if (lastResult != null)
{
if ((query.TimeStamp - lastResult.CompletionTime).TotalSeconds > 10)
{
dataResults.Add(new Result() { Id = query.ID,
longitude = query.Longitude,
latitude = query.Latitude });
}
lastResult = query; // <-- Error Is Here
}
}
foreach(data.AssetStatusHistories中的var查询
.其中(x=>x.TimeStamp x.AssetID==guid))
{
if(lastResult!=null)
{
if((query.TimeStamp-lastResult.CompletionTime).TotalSeconds>10)
{
添加(新结果(){Id=query.Id,
经度=查询经度,
纬度=query.latitude});
}
lastResult=query;//它准确地告诉您它的含义:您无法将Project.Data
转换为Project.Result
data.AssetStatusHistories.Where(x=>x.TimeStamp x.AssetID==guid)
不返回Project.Result
对象的集合,而是返回Project.data
类型的对象
编辑
如果您的上一个结果的类型为Result
,我假设您可以键入:
lastResult = new Result(){Id = query.ID,
longitude = query.Longitude,
latitude = query.Latitude });
但在这种情况下它不会工作。这不是linq相关的问题。您的lastResult
对象被分配到其他地方。如果您想在最后分配一个新的lastResult
对象,您想从哪里获得它的CompletionTime
属性值?在我粘贴的代码中,它没有分配到任何地方。它告诉您u确切的意思是:您不能将Project.Data
转换为Project.Result
**lastResult = query;** <--Error Is Here
data.AssetStatusHistories.Where(x=>x.TimeStamp x.AssetID==guid)
不返回Project.Result
对象的集合,而是返回Project.data
类型的对象
编辑
如果您的上一个结果的类型为Result
,我假设您可以键入:
lastResult = new Result(){Id = query.ID,
longitude = query.Longitude,
latitude = query.Latitude });
但在这种情况下它不起作用。这不是与linq相关的问题。您的lastResult
对象被分配到了其他地方。如果您想在最后分配一个新的lastResult
对象,您想从何处获取它的CompletionTime
属性值?我粘贴的代码中没有将其分配到任何地方。**lastResult=query;*****lastResult=query;**错误听起来就是这样的。似乎lastResult
是一个项目。数据类型,而你的查询
是一个项目。结果
。你可能想设置lastResult=dataResults
?你解决了吗?你的问题实际上是一个重复的问题您之前的问题的副本:这是解决方案的一部分,但我不确定我是否需要lastResult=query;错误听起来就是这样。似乎lastResult
是一个项目。数据类型,而您的查询是一个项目。Result
。您是否打算设置lastResult=dataResults
?您是否解决了它?您的问题实际上与您先前的问题重复:这是解决方案的一部分,但我很不确定我是否需要lastResult=query;
**lastResult = query;** <--Error Is Here