如果没有结果返回EntityFramework,则设置为Null

时间:2012-12-29 15:46:13

标签: asp.net-mvc-3 entity-framework

我从数据库中获取一个Word,并在我的ASP.NET MVC3 EntityFramework项目中使用ViewBag打印出它的“Text”。

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

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

我知道的解决方案:

1-使用if或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();

1 个答案:

答案 0 :(得分:1)

我建议:

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