gpt4 book ai didi

C# IQueryable 我的代码有意义吗?

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

我用它从我的数据库中获取 Material 列表....

  public IQueryable<MaterialsObj> FindAllMaterials()
{
var materials = from m in db.Materials
join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id
select new MaterialsObj()
{
Id = Convert.ToInt64(m.Mat_id),
Mat_Name = m.Mat_Name,
Mes_Name = Mt.Name,
};
return materials;
}

但是我在一个例子中看到了这个,

public IQueryable<MaterialsObj> FindAllMaterials()
{
return from m in db.Materials
join Mt in db.MeasurementTypes on m.MeasurementTypeId equals Mt.Id
select new MaterialsObj()
{
Id = Convert.ToInt64(m.Mat_id),
Mat_Name = m.Mat_Name,
Mes_Name = Mt.Name,
};
}

这两种方法之间真的有很大的区别吗……将我的 linq 查询分配给一个变量并返回它……这是一种好/坏的做法吗?我应该使用哪个建议?

最佳答案

没有本质区别。无论如何,在发布/优化的构建中,我希望编译器删除额外的本地。如果您想在返回之前放置一个断点并检查值,或者如果您想要应用额外的条件过滤,则拥有该变量很有用,例如:

if(applySort) { materials = materials.OrderBy(x => x.Name); }

在您的示例中,它不会添加 任何东西,但它也不会花费 任何东西。随意把它放在那里;特别是如果您认为它使代码更易于阅读。

关于C# IQueryable<T> 我的代码有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2762729/

24 4 0