如何从类中删除属性

本文关键字:删除 属性 | 更新日期: 2023-09-27 18:26:35

我正在通过EF查询数据库,并返回一个List<T>

我使用类似的代码太

var result = (from m in model
select new
{
    Id = m.Id,
    Dependency = m.Dependency,
    Description = m.Description
}).ToList();

这很好,但现在,我可能不想显示DependencyDescription(取决于传递给函数的参数值)。实际上有大约10个属性,我只展示了2个,以保持代码的小

我不知道如何删除值或属性。

当我创建匿名类时,我不能有if/else语句,因为它是匿名的,所以所有属性都是只读的,所以我不能使用它是IQueryable的事实来将值设置为null或0!

如何从类中删除属性

var result = (from m in model
select new
{
    Id = m.Id,
    Dependency = shouldShow ? m.Dependency : null,
    Description = shouldShow ? m.Description : null
}).ToList();

在我看来,您希望在这里使用工厂模型设计模式。这意味着您应该为所有潜在的结果类都有一个类。

Factory Model在其他地方有非常详细的介绍,可以通过谷歌搜索找到——您创建一个类,给定的参数将"生成"输入参数所需类型的对象。