Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Order By in List<T> with Lambda Expression when foreign key is null

Tags:

c#

lambda

linq

Below is my query:

List<db_table> listData = db.db_table.Take(50).ToList();

Now I want this list as sorted list. For that I tried:

listData = db.db_table.OrderBy(x => x.db_table1.column_name).ToList();

My column contains 'null' also at that time it throws an error.

Consider that db_table has foreign key assigned from db_table1

like image 866
iamraviraj Avatar asked Apr 07 '26 05:04

iamraviraj


1 Answers

You can extend your lambda expression or using c# 6 features:

// use c# 6.0 ?. operator
listData = db.db_table
             .OrderBy(x => x.db_table1?.column_name)
             .ToList();

// check value manually
listData = db.db_table
             .OrderBy(x => x.db_table1 != null ? x.db_table1.column_name : string.Empty)
             .ToList();

// filter null values before sorting
listData = db.db_table
             .Where(x => x.db_table1 != null)
             .OrderBy(x => x.db_table1.column_name)
             .ToList();
like image 101
Vadim Martynov Avatar answered Apr 11 '26 08:04

Vadim Martynov



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!