В моем приложении ASP.NET MVC 5 у меня есть ActionResult
в одном из моих контроллеров, который принимает параметры от клиента и возвращает строку JSON.Проблема в том, что я получаю сообщение об ошибке ниже, когда у меня есть нулевые значения в одной или нескольких записях базы данных.Я могу устранить эту ошибку, приведя все нулевые значения к пустой строке в самой таблице представлений, но я бы предпочел не считать это долгосрочным решением.
System.Data.Entity.Core.MappingException: 'Указанная схема недопустима.Ошибки: EFA.msl (16,12): ошибка 2019: указанное сопоставление элементов недопустимо.Тип 'Edm.String [Nullable = False, DefaultValue =, MaxLength =, Unicode =, FixedLength =]' члена 'ScheduledStartTime' в типе 'EFAModel.v_DemandList' не совместим с 'SqlServer.datetime [Nullable = False, DefaultValue=, Precision = 3] 'члена ScheduledStartTime' в типе 'EFAModel.Store.v_DemandList'. '
Любые рекомендации о том, как следует подходить к этому сценарию?
[HttpPost]
public ActionResult GetDemandData()
{
//get basic parameters from DataTables
var draw = Request.Form.GetValues("draw").FirstOrDefault();
var start = Request.Form.GetValues("start").FirstOrDefault();
var length = Request.Form.GetValues("length").FirstOrDefault();
//Find Order Column
var sortColumn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
//find search parameters
var searchParam = Request.Form.GetValues("search[value]")[0];
//build return dataset
int pageSize = length != null ? Convert.ToInt32(length) : 0;
int skip = start != null ? Convert.ToInt32(start) : 0;
int recordsTotal = 0;
//materialize dataset using serch parameters
EFAEntities efa = new EFAEntities();
//*** throws error when database table contains null values ***
var dataSet = (from a in efa.v_DemandList
where a.ScheduledStartTime.Contains(searchParam)
select a
).Distinct().OrderBy(sortColumn + " " + sortColumnDir);
recordsTotal = dataSet.Count();
var data = dataSet.Skip(skip).Take(pageSize).ToList();
return Json(new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = data }, JsonRequestBehavior.AllowGet);
}
Образец из таблицы вида:
![Database Sample](https://i.stack.imgur.com/8l2lr.png)