gpt4 book ai didi

c# - 使用 int 和 String 的 LINQ to SQL C# 函数

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:22 24 4
gpt4 key购买 nike

我有一个 LINQ to SQL查询函数与表结合,但该函数在“return res.ToList();”时给出错误。

  • imo_no 是 int
  • position_coordinates 是字符串
  • vessel_id 是整数
  • 设备是字符串。

我的功能:

List<T> GetAllInitialize()
{
PositionDataClassesDataContext context = new PositionDataClassesDataContext();

var res = from positions in context.it_positions
join vessels in context.it_vessels on positions.imo_no equals vessels.imo_no
select new { positions.imo_no, positions.position_cordinates, vessels.vessel_id, vessels.equipment };

return res.ToList();
}

enter image description here

最佳答案

虽然您可以通过静态类型在本地使用匿名类型或匿名类型对象的集合,但无法在不丢失有关其静态类型的信息的情况下从函数返回它们。

如果您不能或出于某种原因不想创建命名类来保存返回数据,您需要返回 List<dynamic> , 或 List<object> .这两种方法都有其缺点:dynamic将比可比较的静态类型对象慢,而 System.Object不会让您对返回的数据做太多事情。

最好的解决方案是创建一个命名的返回类型:

public class PositionData {
public int ImoNo {get;set;}
public string PositionCordinates {get;set;}
public int VesselId {get;set;}
public string Equipment {get;set;}
}

现在您的查询将如下所示:

select new PositionData {
ImoNo = positions.imo_no
, PositionCordinates = positions.position_cordinates
, VesselId = vessels.vessel_id
, Equipment = vessels.equipment
};

您的方法的返回类型将更改为 List<PositionData> .

关于c# - 使用 int 和 String 的 LINQ to SQL C# 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com