如何避免linq

时间:2015-12-16 12:40:42

标签: c# entity-framework linq linq-to-sql

假设我必须在屏幕上显示值列表

我使用linq

获取列表
    Student     English      Hindi     Tamil      MArathi
    -------    ---------    -------   -------    ---------

    Deepan      56           65          34         45

    Mohan       45           34          0          23

    Murali      56           89          0          0

假设我在db .....中有这些值。

我不想表明如果(泰米尔语和马拉地语)是0 .....如果两个r都包含0意味着....    我必须避免使用linq从数据库中获取该行...例如(murali)...但我不想避免Mohan .....请给我linq查询

现在我尝试了这个

   var ulist = (from c in CustomerTransactions
              where c.TransTypeID==12
                         select new
                         {
                             Student=c.Student,

                             English=c.English,
                             Hindi=c.Hindi,
                             Tamil=c.Tamil,
                             Marathi=c.Marathi
                         }).ToList().OrderBy(b => b.Student).Where(x => x.Marathi!=0 );

2 个答案:

答案 0 :(得分:1)

您可以在一个where语句中组合几个条件:

.Where(x => x.Marathi !=0 && x.Tamil != 0)

这将仅选择两个条件都通过的条目(意味着MarathiTamil都不是0)。

答案 1 :(得分:0)

如果 Lambda 适合您,可以使用此功能。您可以在第一个 Where子句本身中组合所有3个检查,而不是在2个不同的地方指定条件。

    CustomerTransactions.Where(c => c.TransTypeID==12 && !(c.Marathi == 0 && c.Tamil == 0))
                         .OrderBy(c => c.Student)
                         .Select(c => new {
                             Student=c.Student,
                             English=c.English,
                             Hindi=c.Hindi,
                             Tamil=c.Tamil,
                             Marathi=c.Marathi
                         }).ToList();