2012-12-15 44 views
5

Trong máy chủ sql, tôi tạo chế độ xem nơi tôi có thể kiểm tra giá trị rỗng và thay thế bằng giá trị mặc định nếu tôi muốn (nghĩa là ISNULL (PrimaryPhone, 'No Primary #') AS PrimaryPhone. đã sử dụng rất nhiều lượt xem trong ứng dụng biểu mẫu web asp.net của tôi, nhưng bây giờ tôi đang học MVC 4 và muốn bắt đầu ngay.LINQ thay thế giá trị null/rỗng bằng giá trị khác

Tôi có một mô hình, bộ điều khiển và chế độ xem được thiết lập cho bảng khách hàng của tôi. để có thể thay thế các giá trị null/empty bằng ("Not Entered") hoặc một cái gì đó như thế. Tôi tin rằng điều này cần phải đi vào bộ điều khiển, xin vui lòng sửa tôi nếu tôi sai. sử dụng hasvalue, nhưng nó không có sẵn thông qua intellisense.

Làm cách nào để thay thế giá trị rỗng/rỗng mà không sử dụng DefaultValue trong mô hình của tôi?

Cảm ơn

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

Trả lời

6

Bạn có thể sử dụng ?? operator để thiết lập một giá trị mặc định khi một cái gì đó là null:

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

Nếu bạn cần kiểm soát nhiều hơn, ví dụ kiểm tra cho cả rỗng và trống rỗng, bạn cũng có thể sử dụng số ?: operator (còn được gọi là "toán tử có điều kiện" hoặc "toán tử bậc ba"):

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

Cảm ơn Scott, điều đó đã thực sự giúp tôi. –

Các vấn đề liên quan