如何从类中删除属性

时间:2015-12-13 21:01:08

标签: c# entity-framework

我通过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语句,因为它是匿名的,所有属性都是只读的所以我不能使用它的事实{{1}只是将值设置为null或0!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在我看来,你想在这里使用工厂模型设计模式。这意味着您应该拥有所有潜在结果类的类。

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