2012-12-29 64 views
0

我从数据库中获得一个Word,并在ASP.NET MVC3 EntityFramework项目中使用ViewBag打印其“文本”。如果没有返回结果,则设置为空EntityFramework

ViewBag.ManagementSystems = db.Words.Where(w => w.WordBaseID == 1 && w.LanguageID == lang).FirstOrDefault().Text; 

但是,如果没有结果返回,我得到空异常和程序崩溃。如果没有返回结果,什么都不打印什么是最简单和最好的方法?

解我所知道的:

1 - 环绕声,如果用的还是的try-catch块

2-使用

var query = "SELECT Text FROM Words WHERE WordBaseID = {0} AND LanguageID = {1}"; 
ViewBag.ManagementSystems= db.Database.SqlQuery<string>(query, 1, lang).FirstOrDefault(); 
+0

你能不能使用if ... else检查它是否为空? –

+0

我已经告诉我了解它,我问了什么是最好的,最“美观”的解决方案。 –

+0

好..我以为你会指出你不想使用的原因,如果...别的。它有什么特别的原因吗? –

回答

1

我建议:

ViewBag.ManagementSystems = db.Words.Where(w => w.WordBaseID == 1 && w.LanguageID == lang) 
            .Select(x => x.Text).FirstOrDefault(); 
+0

这绝对是我要找的。谢谢。 –