Вот InnerException из этого метода:
SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
Ниже приведен метод, где генерируется это исключение.Я полагаю, что это как-то связано с тем, что столбцы Created_Date
и Modified_Date
являются datetime?
. Я попытался сделать это несколькими способами, как вы можете убедиться по коду, приведенному ниже ролью.однако проблема не возникает там.
public IEnumerable<Models.DTO.Role> GetRoles(bool active = true, int limit = 10)
{
using (var context = new SmartWarehouseEntities())
{
var roles = context.Security_Role
.Where(role => role.Is_Active == active)
.Select(role => new Models.DTO.Role
{
SecurityRoleId = role.Security_Role_Id,
RoleName = role.Role_Name,
RoleDetail = role.Role_Detail,
IsActive = role.Is_Active ?? false,
Created = role.Created_Date.HasValue ? role.Created_Date.Value : DateTime.MinValue,
Modified = role.Modified_Date.HasValue ? role.Created_Date.Value : DateTime.MinValue
})
.Take(limit);
return roles.ToArray();
}
}
РЕДАКТИРОВАТЬ (РЕШЕНО):
Спасибо за вклад всех, вот шаги, которые я использовал для решения проблемы на основе комментариев и ответов.
МОДЕЛЬ РОЛЯ (Обновлено для поддержки Nullable):
public class Role
{
public int SecurityRoleId { get; set; }
public string RoleName { get; set; }
public string RoleDetail { get; set; }
public bool IsActive { get; set; }
public DateTime? Created { get; set; }
public string CreatedDate => !Created.HasValue
? string.Empty
: Created.Value.ToString(CultureInfo.InvariantCulture);
public DateTime? Modified { get; set; }
public string ModifiedDate => !Modified.HasValue
? string.Empty
: Modified.Value.ToString(CultureInfo.InvariantCulture);
}
Метод GetRoles:
public IEnumerable<Models.DTO.Role> GetRoles(bool active = true, int limit = 10)
{
using (var context = new SmartWarehouseEntities())
{
var roles = context.Security_Role
.Where(role => role.Is_Active == active)
.Select(role => new Models.DTO.Role
{
SecurityRoleId = role.Security_Role_Id,
RoleName = role.Role_Name,
RoleDetail = role.Role_Detail,
IsActive = role.Is_Active ?? false,
Created = role.Created_Date,
Modified = role.Modified_Date
})
.Take(limit);
return roles.ToArray();
}
}