Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将LINQ var传递给base add方法C#_C#_.net_Linq_Linq To Sql_Linq To Entities - Fatal编程技术网

将LINQ var传递给base add方法C#

将LINQ var传递给base add方法C#,c#,.net,linq,linq-to-sql,linq-to-entities,C#,.net,Linq,Linq To Sql,Linq To Entities,我正在为我的网页创建一个DAL层,我第一次使用LINQ 目前,我有一个名为CargoTypeCollection的类,它运行如下查询: AHDBDataContext db = new AHDBDataContext(); var CargoTypes = from cargoTypes in db.cargoTypes select cargoTypes; 现在我想将CargoTypes变量传递给我的基本add类(只有Cargo

我正在为我的网页创建一个DAL层,我第一次使用LINQ

目前,我有一个名为CargoTypeCollection的类,它运行如下查询:

   AHDBDataContext db = new AHDBDataContext();

   var CargoTypes = from cargoTypes in db.cargoTypes
                         select cargoTypes;
现在我想将CargoTypes变量传递给我的基本add类(只有CargoTypeCollections从中继承)

这样做的原因是,我可以让不同的方法做不同的事情,但我不需要重复代码。 基本添加类类似于:

protected void baseAdd(var CargoTypes)
{
   foreach (var cargo in CargoTypes)
     {
       CargoTypeEntity cargo = new CargoTypeEntity();
       cargo.CargoTypeID = cargo.CargoTypeId;
       cargo.CargoName = cargo.CargoName;
       CargoTypes.Add(Cargo)
      }
}
(不介意我没有剪切和粘贴的几个打字错误)


但是很明显这不起作用,因为我不能在方法签名中使用var

protected void baseAdd(dynamic CargoTypes)
试试这个:

protected void baseAdd(IQueryable<CargoType> cargoTypes)
您可以尝试使用通用存储库。泛型将解决您希望跨多个类型重用相同逻辑的问题。另一方面,存储库是为DAL提供额外提取的好方法。通过将泛型与存储库相结合,可以实现跨多个类型重用的DAL,而无需为每个类型编写类似的代码


不过,存储库是一个很深的主题,更不用说与泛型一起使用了。因此,我建议您寻找一些参考文章开始。例如,您可能想阅读这篇文章来了解它是什么样子。

IEnumerable在这种方法中更好。我实际上不知道db.CargoTypes是什么类型?这只是我数据库中的一个表。@Michael-当你在Visual Studio中将鼠标悬停在db.cargoTypes上时,它显示的是什么类型?我想我通过将其更改为:var cargoTypes=from cargoTypes in db.cargoTypes select new CargoTypeEntity()解决了这个问题{CargoTypeID=CargoTypeID.CargoTypeID,CargoTypeName=cargoTypes.CargoTypeName,};@Michael-如果答案有效,别忘了标记。谢谢。
var CargoTypes = from cargoTypes in db.cargoTypes
                 select cargoTypes;