一般に、Unicode は、Linq to SQL および Linq to Entities (SQL Server を使用していると思います) に対して正常に動作するはずです。実際、クエリは
var desc = from p in db.GetDesc
where p.Category.Contains("xxxx")
orderby p.Date descending
select p;
「xxxx」はすでに Unicode 文字列であるため、.ToString() を使用する必要はありません。
問題は SQL Server にあるようです。あなたのエチオピア文字を含むテーブルに対してあなたのクエリを試しましたが、あなたが言うようにうまくいきません。.Contains("ስፖርት") を照会すると、すべての行が返されます。
SQL を直接実行しても同じ結果になります。
このような単純なクエリを試行すると失敗します (すべての行が返されます)
select * from TestTable where Title like N'%' + NCHAR(0x1275) + N'%'
ここで、0x1275 は ት 文字の Unicode コード ポイントです。
NCHARのSQL ドキュメントを見ると、4000 までの Unicode コード ポイントのみがサポートされていることがわかります。残念ながら 0x1275 = 4725 であるため、SQL Server (2012 であっても) はエチオピア文字をサポートしていないようです。
4000が限界であることを読んだ後、テストにより、NCHAR(3129)で上記の単純なクエリを実行すると成功することがわかります(私の場合は行が返されません)が、>= 3130は失敗します(すべての行が返されます)。