Impossible de convertir de la méthode de groupe "ToList" pour les non-type de délégué
Je suis en train d'écrire une méthode qui génère plusieurs factures. C'est pour un collège, où les clients sont inscrits avec les enseignants dans une classe appelée Inscriptions. Avec cette méthode, je suis en train d'accumuler les frais mensuels de l'tuteurs clients, multiplié par le nombre pourcentages de commission, en tant que tuteurs de gagner une commission sur les leçons qu'ils donnent. Voici mon code:
public ActionResult CreateBulkCommissions()
{
var month = DateTime.Now.ToString("MMMM");
var enrolments = db.Enrollments.ToList();
var newCommissions = from enrolment in enrolments
select new TutorCommission()
{
CommissionAmount = enrolment.MonthlyFee,
CommissionMonth = month, //string constant
CommissionStatus = "Unpaid",
Tutor = new Tutor { TutorNoID = enrolment.Tutor.TutorNoID, TutorCommissionPercentage = enrolment.Tutor.TutorCommissionPercentage }
};
foreach (var newCommission in newCommissions)
{
List<TutorCommission> TutorComs = newCommissions.GroupBy(g => g.Tutor).Select(s => new TutorCommission
{
CommissionAmount = s.Sum(u => u.CommissionAmount) * s.Key.TutorCommissionPercentage,
TutorNoID = s.Key.TutorNoID
}).ToList;
db.TutorCommission.Add(newCommission);
db.SaveChanges();
}
return RedirectToAction("Index");
}
Sur le ToList ligne, je suis recevez le message d'erreur qu'il convertir convertir la méthode du groupe de ToList à un non-type de délégué. Voici mon modèle pertinent classes:
public class Enrollment
{
[Key]
[Display(Name = "Enrollment ID Number")]
public long EnrollmentIDNumber { get; set; }
[Display(Name = "Client ID Number")]
public long ClientNumberID { get; set; }
[Display(Name = "Tutor ID Number")]
public long TutorNoID { get; set; }
[Display(Name = "Course Name")]
public string CourseName { get; set; }
[Display(Name = "Lesson Time")]
public string LessonTime { get; set; }
[Display(Name = "Lesson Day")]
public string LessonDay { get; set; }
[Display(Name = "Lesson Location")]
public string LessonLocation { get; set; }
[Display(Name = "Lesson Type")]
public string LessonType { get; set; }
[Display(Name = "Lesson Level")]
public string LessonLevel { get; set; }
[Display(Name = "Monthly Fee")]
public long MonthlyFee { get; set; }
public virtual Client Client { get; set; }
public virtual Tutor Tutor { get; set; }
}
public class TutorCommission
{
[Key]
[Display(Name = "Commission ID")]
public long CommissionID { get; set; }
[Display(Name = "Commission Month")]
public string CommissionMonth {get; set;}
[Display(Name = "Commission Amount")]
public double CommissionAmount { get; set; }
[Display(Name = "Commission Status")]
public string CommissionStatus { get; set; }
[Display(Name = "Tutor ID Number")]
public long TutorNoID { get; set; }
public virtual Tutor Tutor { get; set; }
public virtual ICollection<CommissionPayments> CommissionPayments { get; set; }
}
public class Tutor
{
[Key]
[Display(Name = "Tutor ID Number")]
public long TutorNoID { get; set; }
[Required]
[StringLength(50, ErrorMessage="First name must be less than 50 characters")]
[Display(Name = "First Name")]
public string TutorFirstName { get; set; }
[StringLength(50, ErrorMessage = "Last name must be less than 50 characters")]
[Display(Name = "Last Name")]
public string TutorLastName { get; set; }
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[Display(Name = "Birth Date")]
public DateTime? TutorBirthDate { get; set; }
[Display(Name = "Cellphone Number")]
public string TutorCellphoneNumber { get; set; }
[Display(Name = "Home Number")]
public string TutorHomeNumber { get; set; }
[RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$", ErrorMessage = "Not a valid email address")]
[Display(Name = "Email Address")]
public string TutorEmailAddress { get; set; }
[Display(Name = "Street Address")]
public string TutorStreetAddress { get; set; }
[Display(Name = "Suburb")]
public string TutorSuburb { get; set; }
[Display(Name = "City")]
public string TutorCity { get; set; }
[Display(Name = "Postal Code")]
public string TutorPostalCode { get; set; }
[Display(Name="Full Name")]
public string FullName
{
get
{
return TutorFirstName + " " + TutorLastName;
}
}
[Display(Name="Commission Percentage")]
[Required]
public double TutorCommissionPercentage { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
public virtual ICollection<TutorCommission> TutorCommissions { get; set; }
}
Grâce,
Amy
OriginalL'auteur Amy | 2011-10-11
Vous devez vous connecter pour publier un commentaire.
Vous devriez appeler ToList () pas ToList.
EntityValidationErrors sont l'exception. Télécharger ma source ici et découvrez une façon, pour les manipuler. completedevelopment.blogspot.com/2011/10/...
Merci. Ce qui est généralement le problème avec des exceptions comme ça?
OriginalL'auteur Alexei Levenkov
ToList est pas une propriété. Devrait être ToList()
OriginalL'auteur MishaU
Vouliez-vous dire:
Le () n'est pas nécessaire après le TutorCommission constructeur.
Hmm vraiment? J'ai toujours la mettre, apprendre quelque chose de nouveau chaque jour, je suppose.
Parce que vous êtes à l'aide de l'objet de l'initialiseur, il va automatiquement utiliser le constructeur par défaut, de sorte que le () est implicite par le compilateur. Bien sûr, pas de mal de le laisser. Juste une question de préférence. 🙂
Oui je peux certainement voir comment il serait redondant. Je pense que ma préférence serait de le laisser dans juste parce que j'aime la cohérence.
OriginalL'auteur Mike Christensen
OriginalL'auteur janvi