2012-09-17 47 views
0

喜的朋友,我有列表波紋管如何將記錄從classt類型List添加到Class對象?

List<Authors>listAuthor=new List<Authors>(); 
在該列表中

我有100條記錄,現在我的問題是我想保存這些列表導入數據庫只有在ASP一個往返(只有一個命中數據庫) .NET MVC使用數據庫優先技術在實體框架

我已經創建的對象

Author objAuthor=new Author(); 
    objAuthor=listAuthor; 

我收到轉換錯誤,任何想法的朋友?

這是我的全部代碼

public ActionResult SaveAuthorConsol() 
    { 
     List<Author> listAuthor = new List<Author>(); // declare list 

     List<Bib> bib = new List<Bib>(); // geting records from this table 
     bib = db.Bibs.ToList(); 

     var q = db.Authors.ToList(); 

     foreach (var c in q) 
     { 
      db.Authors.DeleteObject(c); //Note:deleting previous records from Author table 
     } 

     db.SaveChanges(); 

     foreach (var bibitems in bib) // return Author type list 
     { 
      Authors objAuthor = new Authors(); 
      listAuthor.AddRange(objAuthor.SaveAouthor(0, bibitems.Contents)); 
     } 
     foreach (Author objauthor in listAuthor) //adding my list records to database 
     { 
      db.Authors.Attach(objauthor); // getting error here 
     } 


     db.SaveChanges(); 
     return View(); 
    } 

感謝

回答

2

您不必創建Author類型的新對象。將每個項目添加到數據庫上下文後,您可以直接調用SaveChanges一次。

嘗試:

foreach(Author objAuthor in listAuthor) 
{ 
    db.Author.AddObject(objAuthor); 
} 
db.SaveChanges(); 
+0

@Habib ..它的'db.SubmitChanges()'而不是'SaveChanges()' –

+0

@MayankPathak,謝謝,修改我的回答 – Habib

+0

得到這個錯誤「ObjectStateManager中已存在相同的鍵」 –

1

你可以添加元素的列表:

List<Authors> listAuthor = new List<Authors>(); 
Author objAuthor = new Author(); 
listAuthor.Add(objAuthor); 

但既然你提到的EF,我想你有一個數據庫上下文您可以直接添加實體和持續的變化:

Author objAuthor = new Author(); 
db.Authors.Add(objAuthor); 
db.SubmitChanges(); 
+0

我在你提到上述列表記錄所以數據庫來保存我從列表中移動這些記錄對象。我想現在你明確了我的問題 –

+0

不,我怕你的問題不清楚。你有一個你想添加到數據庫上下文的記錄列表?然後簡單地遍歷這個列表並調用.Add方法。 –

+0

我想只保存一個命中數據庫,所以不能使用循環 –

0

問題是在你conversion..Take看看你的代碼的方式,你正在嘗試做一個is..Assigning到List<Authors>Author的Instance..Well其根本不possible..you必須做的是相反的..

編輯 對於多Update不幸的是,還沒有辦法。我可以建議你做什麼...爲你的多行準備XML。並使用XML插入並使用常規存儲過程,通過這種方式,您可以一次插入任意數量的行,並且只能在一次命中數據庫中。

+0

事情是,我需要將我的列表數據保存在一個數據庫只有一次往返...我可以用任何方式..如果你有任何想法然後告訴我 –

+0

檢查編輯部分.. –

相關問題