C# 从方法返回值

C# 从方法返回值,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我需要从我的桌子上为一个特定的病人安排所有的预约,为此我试着 public List<Appoinment> GetAppoinments() //here Appointment is a class. { List<Appoinment> appointments = null; foreach (DataObject.Appointment appointment in

我需要从我的桌子上为一个特定的病人安排所有的预约,为此我试着

public List<Appoinment> GetAppoinments()         //here Appointment is a class.
    {
        List<Appoinment> appointments = null;

        foreach (DataObject.Appointment appointment in
                   dataEntities.Appointments.Where(a => a.PATIENTID == PatientId))
        {

        }

        return appointments;
    }
appointments.add(appointment);
它的错误是,它不能自动从数据库表约会转换为类约会,对吧


我不知道怎么做,这里有人能帮我吗,提前谢谢你你可以这样做:

public List<Appointment> GetAppointments()      
{
    return dataEntities.Appointments
                       .Where(a => a.PATIENTID == PatientId)
                       .Select(a => new OtherNamespace.Appointment 
                                    {
                                        Id = a.Id,
                                        Name = a.Name,
                                        // etc.
                                    })
                       .ToList();
}
dataEntities.Appointments.Where(a => a.PATIENTID == PatientId)
  .Select (new Appoinment { ... set values from DB element });

你可以这样做:

dataEntities.Appointments.Where(a => a.PATIENTID == PatientId)
  .Select (new Appoinment { ... set values from DB element });

你把数据.约会转换成你的.约会

你可以这样做

My.Appoint resultAppointment = new My.Appointment();
resultAppointment.Id = dataAppointment.Id
但更好的方法是在数据点上应用投影。生成的sql查询将只获取必需的字段

public List<Appoinment> GetAppoinments()         //here Appointment is a class.
    {
        return dataEntities.Appointments.Where(a => a.PATIENTID == PatientId))
                                        .Select(a => new Appointment() { Prop1 = a.Prop1})
                                        .ToList();

    }

你把数据.约会转换成你的.约会

你可以这样做

My.Appoint resultAppointment = new My.Appointment();
resultAppointment.Id = dataAppointment.Id
但更好的方法是在数据点上应用投影。生成的sql查询将只获取必需的字段

public List<Appoinment> GetAppoinments()         //here Appointment is a class.
    {
        return dataEntities.Appointments.Where(a => a.PATIENTID == PatientId))
                                        .Select(a => new Appointment() { Prop1 = a.Prop1})
                                        .ToList();

    }

我同意上面的解决方案……但是, 如果您必须经常编写这种映射代码。。。即将一个对象的属性复制到另一个对象的代码,那么您可以考虑使用AutoPuffer-


我同意上述解决方案……但是, 如果您必须经常编写这种映射代码。。。即将一个对象的属性复制到另一个对象的代码,那么您可以考虑使用AutoPuffer-


您应该执行约会。根据您正在迭代的当前约会,添加新约会{ParientId=…,OtherStuff=…}。还可能希望在向其添加元素之前初始化空列表!感谢downvote和UpVote,您可能应该向我们展示约会类的界面。没有他们很难帮上忙。谢谢,我只是尝试了克雷格的方法,它的工作原理是你应该做任命。根据你正在迭代的当前任命添加新的任命{ParientId=…,OtherStuff=…}。在向其添加元素之前,可能还需要初始化空列表!感谢downvote和UpVote,您可能应该向我们展示约会类的界面。没有他们很难帮上忙。谢谢,我只是尝试了Craig的方法,它的工作方式,是的,将其转换为列表。它的显示错误类似,不能隐式地从数据库约会转换为业务对象约会,是的,将其转换为列表。它的显示错误类似,无法从数据库约会隐式转换为业务对象约会AM gettin错误,如无法转换int?到int,像这样,ySure。如果在一个类型和int上有一个int Foo属性?Foo在另一个类型上,则必须转换,例如Foo=a.Foo.HasValue?a、 值:0,am gettin错误,无法转换int?到int,像这样,ySure。如果在一个类型和int上有一个int Foo属性?Foo在另一个类型上,则必须转换,例如Foo=a.Foo.HasValue?a、 值:0,不,不要使用自动映射。这对IQueryableNo没用,不要用AutoMapper。这对我来说没用