C# 是否有方法检查通用映射实体是否有效以插入或更新。环境足迹6
我正在从excel文件加载实体数据,我需要在从excel行创建实体后验证实体,但我有多个功能提供了通过excel文件插入或更新的选项,因此我想创建一些通用的功能,如ModelState.IsValidC# 是否有方法检查通用映射实体是否有效以插入或更新。环境足迹6,c#,excel,entity-framework,generics,C#,Excel,Entity Framework,Generics,我正在从excel文件加载实体数据,我需要在从excel行创建实体后验证实体,但我有多个功能提供了通过excel文件插入或更新的选项,因此我想创建一些通用的功能,如ModelState.IsValid 实体框架是否有类似的功能?我通过验证viewModel解决了这个问题: public ActionResult Insert(string data1, DateTime data2, int data3, bool data4) { Model model = new Model(d
实体框架是否有类似的功能?我通过验证viewModel解决了这个问题:
public ActionResult Insert(string data1, DateTime data2, int data3, bool
data4)
{
Model model = new Model(data1, data2, data3, data4);
ModelState.Clear();
TryValidateModel(model);
LoadErrors();
}
所有错误都加载到ModelState中,然后我读取它:
private string[] LoadErrors()
{
var errorList = ModelState
.Where(x => x.Value.Errors.Count > 0)
.ToDictionary(
kvp => kvp.Key,
kvp => kvp.Value.Errors.Select(e =>
e.ErrorMessage).ToArray()
);
return errorList;
}
我通过验证viewModel解决了这个问题:
public ActionResult Insert(string data1, DateTime data2, int data3, bool
data4)
{
Model model = new Model(data1, data2, data3, data4);
ModelState.Clear();
TryValidateModel(model);
LoadErrors();
}
所有错误都加载到ModelState中,然后我读取它:
private string[] LoadErrors()
{
var errorList = ModelState
.Where(x => x.Value.Errors.Count > 0)
.ToDictionary(
kvp => kvp.Key,
kvp => kvp.Value.Errors.Select(e =>
e.ErrorMessage).ToArray()
);
return errorList;
}
这种验证需要什么?你能在你的模型上使用数据注释吗?Excel中的每一行是单个实体还是分解为多个实体?默认情况下,EF会在保存更改之前验证实体。每一行都是一个实体,我想在发送到insert之前进行检查。我想我将创建模型而不是实体,而不是使用TryValidateModel,如果它有效,我将创建实体并插入或更新。@GertArnold很高兴知道这个方法存在,我想在不在DAO层、不附加实体的情况下执行它,但我已经解决了,通过以下方式创建和验证viewmodel:ModelState.Clear();TryValidateModel(model),所有错误都加载到ModelState中,然后我读取它。这个验证需要什么?你能在你的模型上使用数据注释吗?Excel中的每一行是单个实体还是分解为多个实体?默认情况下,EF会在保存更改之前验证实体。每一行都是一个实体,我想在发送到insert之前进行检查。我想我将创建模型而不是实体,而不是使用TryValidateModel,如果它有效,我将创建实体并插入或更新。@GertArnold很高兴知道这个方法存在,我想在不在DAO层、不附加实体的情况下执行它,但我已经解决了,通过以下方式创建和验证viewmodel:ModelState.Clear();TryValidateModel(model),所有错误都加载到ModelState中,然后我读取它。