【发布时间】:2018-01-12 22:50:01
【问题描述】:
我正在使用 .Net Cli 将数据记录到 SeriLog。显示用户的电子邮件时出现问题。这就是我得到的:System.Collections.Generic.List`1[Net3.Models.AccountViewModels.UserListingVM],虽然我正在尝试获取:someonesname@email.com。我不确定为什么我没有得到我想要的结果,但这里是来自控制器和存储库的以下代码: 附言我对此很陌生。提前谢谢你。
*****UserController.cs*****
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Net3.Data;
using Net3.Repository;
using Microsoft.AspNetCore.Authorization;
using Serilog;
using Net3.Models.AccountViewModels;
namespace Net3.Controllers
{
[Authorize]
public class UserController : Controller
{
ApplicationDbContext _context;
public UserController(ApplicationDbContext context)
{
_context = context;
}
public ActionResult Index()
{
UserRepository userRepository = new UserRepository(_context);
UserListingVM usersListing = new UserListingVM();
var userInfo = _context.Users.Select(u => new UserListingVM()
{
Id = u.Id,
Email = u.Email
});
Log.Debug(userInfo.ToList().ToString());
return View(userRepository.GetAll());
}
}
}
***UserRepository***
using Net3.Data;
using Net3.Models.AccountViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Net3.Repository
{
public class UserRepository
{
ApplicationDbContext _context;
public UserRepository(ApplicationDbContext context)
{
this._context = context;
}
public IEnumerable<UserListingVM> GetAll()
{
var usersListing = _context.Users.Select(u => new UserListingVM()
{
Id = u.Id,
Email = u.Email
});
return usersListing;
}
}
}
【问题讨论】:
-
因为 Object.ToString() 的默认实现是返回对象的数据类型。你想使用
String.Join()。 -
@SamAxe 不,
string.Join在使用 Serilog 时并不是一个好主意。 Serilog 的重点是进行结构化日志记录。例如,请参阅我的答案。
标签: c# asp.net .net visual-studio serilog