2017-06-12 10 views
1

我从excel文件加载实体数据,我需要从excel行创建它后验证实体,但我有多个功能,提供插入或更新excel文件的选项,所以我想创建一些通用的东西,比如ModelState.IsValid。有没有办法检查泛型映射实体是否有效插入或更新。 EF 6

实体框架是否有这样的东西?

+0

是什么验证意味着什么?你可以在你的模型上使用DataAnnotations吗? Excel中的每一行都是一个单独的实体还是它被分解为多个实体? – Fran

+0

默认情况下,EF在保存更改之前验证实体。 –

+0

每一行都是一个实体,我想在发送前先检查插入。 我想我会创建模型,而不是实体,比我将使用TryValidateModel,如果它是有效的我创建实体并插入或更新。 –

回答

0

我解决了通过验证视图模型:

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; 
} 
相关问题