2017-06-12 44 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; 
} 
相關問題