C# 如何将classt类型列表中的记录添加到类对象?

C# 如何将classt类型列表中的记录添加到类对象?,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,嗨,朋友们,下面是我的名单 List<Authors>listAuthor=new List<Authors>(); 我得到转换错误,有什么想法吗,朋友 这是我的全部代码 public ActionResult SaveAuthorConsol() { List<Author> listAuthor = new List<Author>(); // declare list List<Bi

嗨,朋友们,下面是我的名单

List<Authors>listAuthor=new  List<Authors>();
我得到转换错误,有什么想法吗,朋友

这是我的全部代码

    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();
    }
public ActionResult SaveAuthorConsol()
{
List listAuthor=新建列表();//声明列表
List bib=new List();//从此表中获取记录
bib=db.Bibs.ToList();
var q=db.Authors.ToList();
foreach(q中的var c)
{
db.Authors.DeleteObject(c);//注意:从Author表中删除以前的记录
}
db.SaveChanges();
foreach(bib中的var bibitems)//返回作者类型列表
{
Authors objautor=新作者();
AddRange(objautor.saveaouther(0,bibitems.Contents));
}
foreach(listAuthor中的Author objautor)//将我的列表记录添加到数据库
{
db.Authors.Attach(objautor);//此处获取错误
}
db.SaveChanges();
返回视图();
}

谢谢

您可以向列表中添加元素:

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

您可以向列表中添加元素:

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

您不必创建类型为
Author
的新对象。将每个项目添加到数据库上下文后,可以直接调用SaveChanges一次

尝试:


您不必创建类型为
Author
的新对象。将每个项目添加到数据库上下文后,可以直接调用SaveChanges一次

尝试:



问题在于你的转换方式。看看你的代码,你想做的是。分配一个
列表。不幸的是,现在还没有办法。我可以建议您做什么..为多行准备XML。使用XMLINSERT和常规存储过程,通过这种方式,您可以一次插入任意数量的行,并且只需一次点击数据库

问题在于你的转换方式。.看看你的代码,你想做的是。.分配一个
列表不幸的是,现在还没有办法。我可以建议您做什么..为多行准备XML。使用XMLINSERT和常规存储过程,通过这种方式,您可以一次插入任意数量的行,并且只需一次点击数据库

我的记录在列表中,正如你们上面提到的那个样,为了保存在数据库中,我已经将这些记录从列表移动到了对象。我想你现在清楚我的问题了不,恐怕你的问题不清楚。是否有要添加到db上下文的记录列表?然后简单地循环这个列表并调用.Add方法。我只想将一次点击保存到数据库中,所以不能使用for循环。您可以使用for循环将现有上下文中的元素复制到db上下文中。我在列表中的记录正如您上面提到的,所以要保存到数据库中,我必须将这些记录从列表移动到数据库对象我想你现在清楚我的问题了不,恐怕你的问题不清楚。是否有要添加到db上下文的记录列表?然后简单地循环遍历此列表并调用.Add方法。我只想将一次命中保存到数据库,因此不能使用for循环。您可以使用for循环将现有上下文中的元素复制到db上下文。@Habib。。它的
db.SubmitChanges()
而不是
SaveChanges()
获取此错误“ObjectStateManager中已存在相同的密钥”@KapsHasija,您的列表包含什么?这些新对象是
Author
类型的还是从数据库中获取的?如果是这样,您不能将它们添加回数据库是的,我从数据库中获取,但不是从作者表中获取,记录来自差异表,我正在进行一些筛选,然后保存到我的list@KapsHasija,您可以将代码添加到正在填充list@Habib.. 它的
db.SubmitChanges()
而不是
SaveChanges()
获取此错误“ObjectStateManager中已存在相同的密钥”@KapsHasija,您的列表包含什么?这些新对象是
Author
类型的还是从数据库中获取的?如果是这样,您不能将它们添加回数据库是的,我从数据库中获取,但不是从作者表中获取,记录来自差异表,我正在进行一些筛选,然后保存到我的list@KapsHasija,您可以将代码添加到您的问题中,您正在填充列表。问题是,我只需要通过一次往返将列表数据保存在数据库中。。。我可以用任何方法。。如果你有任何想法,然后告诉我,我需要保存我的列表数据在数据库中只有一个来回。。。我可以用任何方法。。如果你有什么想法,告诉我
Author objAuthor = new Author();
db.Authors.Add(objAuthor);
db.SubmitChanges();
foreach(Author objAuthor in listAuthor)
{
     db.Author.AddObject(objAuthor);
}
db.SaveChanges();