如何调用返回List<>的mapper方法?

时间:2012-04-04 12:36:10

标签: c# entity-framework list mapper

我正在尝试从我的映射器返回一个对象列表,并将它们保存到我的Entity Framework数据库中。 我的mapperclass看起来像这样

    class TimereportMappers
    {        
    public List<Days> dayMap(List<Day> days)
    {
        List<Days> output = new List<Days>();

        foreach (Common.Day input in days)
        {
            output.Add(new Days()
            {
                Date = input.Date,
                Hour = input.Hours
            });
            //output.Date = input.Date;
            //output.Hour = input.Hours;
        }

        return output;
    }

}

我的dataaccess-class中的问题是我不知道如何将对象保存到我的数据库,dataaccess-class中的方法看起来像这样

     public void sendDays(List<Common.Day> days)
        {
            TimereportMappers mapper = new TimereportMappers();
            context.Days.AddObject(mapper.dayMap(days));         
            context.SaveChanges();
        }

但AddObject只能添加1个对象?如何添加对象列表?

Visual Studio为我提供了错误代码

  

错误2参数1:无法从“System.Collections.Generic.List”转换为“Timereport.BusinessLogic.Data_Access.Days”C:\ Users \ widde \ Documents \ Visual Studio 2010 \ Projects \ Timereport \ Timereport.BusinessLogic \ TimereportDataAccess.cs 43 37 Timereport.BusinessLogic

  

错误1“System.Data.Objects.ObjectSet.AddObject(Timereport.BusinessLogic.Data_Access.Days)”的最佳重载方法匹配具有一些无效参数C:\ Users \ widde \ Documents \ Visual Studio 2010 \ Projects \ Timereport \ Timereport.BusinessLogic \ TimereportDataAccess.cs 43 14 Timereport.BusinessLogic

2 个答案:

答案 0 :(得分:1)

这会有用吗? (我不能轻易地测试这个,但想法是一次只添加1个对象实例而不是整个列表)

sendDays方法:

public void sendDays(List<Common.Day> days)
{
    TimereportMappers mapper = new TimereportMappers();

    foreach (var day in days)
    {
        context.Days.AddObject(mapper.dayMap(day));
    }

    context.SaveChanges();
}

TimereportMappers类:

class TimereportMappers
{
    public Days dayMap(Day input)
    {
        return new Days
        {
            Date = input.Date,
            Hour = input.Hours
        };
    }

}

答案 1 :(得分:0)

致电AddObject()多次,并致电SaveChanges()一次?