我通过EF查询我的数据库,然后返回List<T>
。
我也使用类似的代码
var result = (from m in model
select new
{
Id = m.Id,
Dependency = m.Dependency,
Description = m.Description
}).ToList();
这很好但现在,我可能想要或不想要显示Dependency
或Description
(取决于传递给函数的参数的值)。实际上有大约10个属性,我只显示了2个以保持代码较小
我不知道如何删除一个或多个属性。
创建匿名类时我不能使用if / else语句,因为它是匿名的,所有属性都是只读的所以我不能使用它的事实{{1}只是将值设置为null或0!
答案 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;输入参数所需类型的对象。