2012-12-15 74 views
5

在sql服务器中,我创建视图,我可以检查空值并将它们替换为默认值(如果我想)(例如,ISNULL(PrimaryPhone,'No Primary#')作为PrimaryPhone。在我的asp.net web窗体应用程序中使用了很多视图,但我现在正在学习MVC 4,并且想要开始正确的使用Linq用另一个值替换空值/空值

我有一个模型,控制器和视图为我的客户端表设置。 (“Not Entered”)或类似的东西来代替空值/空值 我相信这需要在控制器中进行,如果我错了,请纠正我的问题

我看到一个例子,使用hasvalue,但它不可用智能感知。

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

感谢

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

回答

6

可以使用?? operator设置默认值时,事情是空:

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

如果您需要更多的控制,例如检查null和空,也可以使用?: 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, ... 
+0

谢谢Scott,那真的帮了我很大的忙。 –