2017-07-19 78 views
0

我一直在試圖將記錄從一個表複製到另一個在實體框架MVC。這裏是我的代碼..無法將記錄從一個表複製到另一個實體框架MVC

var records = _db.Attendance.Get(e => attIdsToDelete.Contains(e.Id)); 
    _db.AttendanceHistory.Insert(records); 

現在我已經越來越錯誤的記載,「不能從‘system.collections.generic.ienumerable’轉換爲‘attendancehistory’

列和類型的數量都在數據庫中同一

+0

有要保存在'IEnumerable'所有記錄?使用foreach循環和PE插入存儲在其中的每個記錄的插入。 –

+0

記錄包含我要插入AttendanceHistory表中的記錄列表(來自Attendance表)...現在它會引發上面提到的錯誤。 – ASK

+0

如何將數據從一張表存儲到另一張表,而沒有映射表或任何forloop –

回答

0

請把這個

_db.AttendanceHistory.Insert(records); 

此:

_db.AttendanceHistory.AddRange(records); 

如果考勤和考勤歷史屬於同一類型,這應該起作用。如果仍然抱怨,嘗試鑄造並改變列表第一:

var records = _db.Attendance.Get(e => attIdsToDelete.Contains(e.Id)).ToList<AttendanceHistory>(); 
0

您可以創建一個方法像下面,複製從源類的所有屬性(值)到目的地類(如果有相同的屬性都類(名和數據類型)

public class Utility 
{ 
    /// <summary> 
    /// Copy one class all properties to another class - if both the class having all the same properties 
    /// </summary> 
    /// <param name="FromClass">Class A - from where properties need to be copied</param> 
    /// <param name="ToClass">Class B - to whom properties need to be pasted</param> 
    public static void CopyAllPropertiesFromOneClassToAnotherClass(object FromClass, object ToClass) 
    { 
     foreach (PropertyInfo propA in FromClass.GetType().GetProperties()) 
     { 
      PropertyInfo propB = ToClass.GetType().GetProperty(propA.Name); 
      propB.SetValue(ToClass, propA.GetValue(FromClass, null), null); 
     } 
    } 
} 

然後在你的代碼,你可以調用該方法將數據複製像下面

Utility.CopyAllPropertiesFromOneClassToAnotherClass(fromClassObject, toClassObject); 
相關問題