Le code ci-dessous est ce que j'ai actuellement et fonctionne bien. Je pense que je pourrais faire plus du travail que je fais dans Linq au lieu du code C#.C# Code Linq Refactoring
Y at-il quelqu'un là-bas qui peut accomplir le même résultat avec plus de code Linq et moins de code C#.
public List<Model.Question> GetSurveyQuestions(string type, int typeID)
{
using (eMTADataContext db = DataContextFactory.CreateContext())
{
List<Model.Question> questions = new List<Model.Question>();
List<Linq.Survey_Question> survey_questions;
List<Linq.Survey> surveys = db.Surveys
.Where(s => s.Type.Equals(type) && s.Type_ID.Equals(typeID))
.ToList();
if (surveys.Count > 0)
{
survey_questions = db.Survey_Questions
.Where(sq => sq.Survey_ID == surveys[0].ID).ToList();
foreach (Linq.Survey_Question sq in survey_questions)
{
Model.Question q = Mapper.ToBusinessObject(sq.Question);
q.Status = sq.Status;
questions.Add(q);
}
}
else
{
questions = null;
}
return questions;
}
}
Voici ma fonction Mapper de mon entité à Biz Objet
internal static Model.Question ToBusinessObject(Linq.Question q)
{
return new Model.Question
{
ID = q.ID,
Name = q.Name,
Text = q.Text,
Choices = ToBusinessObject(q.Question_Choices.ToList())
};
}
Je veux que mon mappeur funciton à la carte de l'état de la question comme si.
internal static Model.Question ToBusinessObject(Linq.Question q)
{
return new Model.Question
{
ID = q.ID,
Name = q.Name,
Text = q.Text,
Choices = ToBusinessObject(q.Question_Choices.ToList()),
Status = q.Survey_Questions[?].Status
};
}
? le problème est que cette fonction ne sait pas de quelle enquête tirer le statut.
Au lieu de créer l'objet biz puis définir la propriété d'état dans une boucle foreach comme si
foreach (Linq.Survey_Question sq in survey_questions)
{
Model.Question q = Mapper.ToBusinessObject(sq.Question);
q.Status = sq.Status;
questions.Add(q);
}
Je voudrais filtrer en quelque sorte le EntitySet<Survey_Question>
dans l'objet q ci-dessus dans la méthode d'appel, tel qu'il y aurait seulement un élément de la collection q.Survey_Questions [?].
ci-dessous est mon schéma de base de données et schéma objet métier alt text http://i41.tinypic.com/1051n28.png alt text http://i43.tinypic.com/awua2v.png
est C#. Vous ne savez pas pourquoi vous faites la distinction – Surya