Linq用另一个值替换null /空值

时间:2012-12-15 18:27:55

标签: linq asp.net-mvc-4

在sql server中,我创建了一个视图,我可以在其中检查空值,如果需要,可以用默认值替换它们(即ISNULL(PrimaryPhone,' No Primary#')AS PrimaryPhone。我经常使用我的asp.net网络表单应用程序中的视图,但我现在正在学习MVC 4,并希望从正确开始。

我为我的客户端表设置了模型,控制器和视图。我希望能够用(" Not Entered")或类似的东西替换null / empty值。 我相信这需要进入控制器,如果我错了,请纠正我。

我看到了一个使用hasvalue的例子,但它不能通过intellisense获得。

如何在我的模型中不使用DefaultValue来替换空/空值?

由于

var result = db.Clients.Select(x => new
        {
            CustomerID = x.CustomerID,
            UserID = x.UserID,
            FullName = x.FullName,
            EmailAdd = x.emailadd.DefaultIfEmpty("No Email"),....

1 个答案:

答案 0 :(得分:6)

当某些内容为空时,您可以使用?? operator设置默认值:

var result = db.Clients.Select(x => new
        {
            CustomerID = x.CustomerID,
            UserID = x.UserID,
            FullName = x.FullName,
            EmailAdd = x.emailadd ?? "No Email", ...

如果您需要更多控制,例如检查null和empty,您还可以使用?: operator(也称为“条件运算符”或“三元运算符”):

var result = db.Clients.Select(x => new
        {
            CustomerID = x.CustomerID,
            UserID = x.UserID,
            FullName = x.FullName,
            EmailAdd = string.IsNullOrEmpty(x.emailadd) ? "No Email" : x.emailadd, ...