C# 如何从类中删除属性

C# 如何从类中删除属性,c#,entity-framework,C#,Entity Framework,我正在通过EF查询我的数据库,并返回一个列表 我也使用类似的代码 var result = (from m in model select new { Id = m.Id, Dependency = m.Dependency, Description = m.Description }).ToList(); 这非常有效,但现在,我可能不想显示依赖关系或说明(取决于传递给函数的参数值)。实际上大约有10个属性,我只展示了2个属性来保持代码的小型化 我不知道如何删除该值或属

我正在通过EF查询我的数据库,并返回一个
列表

我也使用类似的代码

var result = (from m in model
select new
{
    Id = m.Id,
    Dependency = m.Dependency,
    Description = m.Description
}).ToList();
这非常有效,但现在,我可能不想显示
依赖关系
说明
(取决于传递给函数的参数值)。实际上大约有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();

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

您不能在运行时删除属性!只需将它们设置为“null”值?我唯一的解决方案是创建一个新的模型,它模仿我的匿名类,所以至少这样,结果不仅是只读的,而且看起来很粗糙@DanielA.White但这可能是唯一的解决方案:S@DieterB,正如我所写的,它是匿名的,意思是,这些属性是只读的,我同意@Hogan,但不知道如何设计它。上面的示例运行良好,但用户可能希望隐藏一些值。问题在于,尽管在浏览器中隐藏值很容易,但如果用户查看源代码(HTML或JSON),他们可以看到值。因此,可以说,我需要将这些从“源”中删除