IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

récupérer le nom de l'étudient rest web service


Sujet :

Développement Web avec .NET

  1. #1
    Membre régulier
    Homme Profil pro
    étudiant
    Inscrit en
    Septembre 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 342
    Points : 124
    Points
    124
    Par défaut récupérer le nom de l'étudient rest web service
    Bonjour,

    j'ai un projet de web Service avec ASP.net à terminer (il a été déjà crée et je suis en cours de terminer le travail),mon problème est que je n'arrive plus a extraire le nom de l'étudiant tapé en valeur voici le fichier service.cs que j'ai déja trouvé défini:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     
        public abstract class Service<TEntity> : IService<TEntity> where TEntity : class, IObjectState
    ****{
    ********#region Private Fields
    ********private readonly IRepositoryAsync<TEntity> _repository;
    ********#endregion Private Fields
    *
    ********#region Constructor
    ********protected Service(IRepositoryAsync<TEntity> repository) { _repository = repository; }
    ********#endregion Constructor
    *
    ********public virtual TEntity Find(params object[] keyValues) { return _repository.Find(keyValues); }
    *
    ********public virtual IQueryable<TEntity> SelectQuery(string query, params object[] parameters) { return _repository.SelectQuery(query, parameters).AsQueryable(); }
    *
    ********public virtual void Insert(TEntity entity) { _repository.Insert(entity); }
    *
    ********public virtual void InsertRange(IEnumerable<TEntity> entities) { _repository.InsertRange(entities); }
    *
    ********public virtual void InsertOrUpdateGraph(TEntity entity) { _repository.InsertOrUpdateGraph(entity); }
    *
    ********public virtual void InsertGraphRange(IEnumerable<TEntity> entities) { _repository.InsertGraphRange(entities); }
    *
    ********public virtual void Update(TEntity entity) { _repository.Update(entity); }
    *
    ********public virtual void Delete(object id) { _repository.Delete(id); }
    *
    ********public virtual void Delete(TEntity entity) { _repository.Delete(entity); }
    *
    ********public IQueryFluent<TEntity> Query() { return _repository.Query(); }
    *
    ********public virtual IQueryFluent<TEntity> Query(IQueryObject<TEntity> queryObject) { return _repository.Query(queryObject); }
    *
    ********public virtual IQueryFluent<TEntity> Query(Expression<Func<TEntity, bool>> query) { return _repository.Query(query); }
    *
    ********public virtual async Task<TEntity> FindAsync(params object[] keyValues) { return await _repository.FindAsync(keyValues); }
    *
    ********public virtual async Task<TEntity> FindAsync(CancellationToken cancellationToken, params object[] keyValues) { return await _repository.FindAsync(cancellationToken, keyValues); }
    *
    ********public virtual async Task<bool> DeleteAsync(params object[] keyValues) { return await DeleteAsync(CancellationToken.None, keyValues); }
    *
    ********//IF 04/08/2014 - Before: return await DeleteAsync(cancellationToken, keyValues);
    ********public virtual async Task<bool> DeleteAsync(CancellationToken cancellationToken, params object[] keyValues) { return await _repository.DeleteAsync(cancellationToken, keyValues); }
    *
    ********public IQueryable<TEntity> Queryable() { return _repository.Queryable(); }
    ****}
    le fichier ProjetContext.cs (accès à la base de données):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public partial class ProjetContext : DataContext
     
        {
     
            static ProjetContext()
     
            {
     
                Database.SetInitializer<SMAContext>(new ProjetInitialize());
     
            }
     
     
     
            public ProjetContext()
     
                : base("Name=ProjetContext")
     
            {
     
            }   
     
    public DbSet<Student> Students { get; set; }
     
    }
    et voici mon code dans StudentsController.cs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    private static ProjetContext cc = new ProjetContext();
    //Get Student by FirstName
    [Route("api/Students/{name:alpha}")]
    public Student Get(string name)
    {
    try
    {
     
    string query = from Students in cc.Students
    where Students.FirstName.Contains(name)
    select Students.FirstName;
     
     
    return _StudentService.SelectQuery(query,name).ToList(); //erreur dans ce ligne
     
    }
    catch (Exception ex)
    {
    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, ex.Message));
    }
    }
    or j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cannot implicitly convert type 'System.Collection.Generic.List<Projet.Entities.Models.Student> ' to 'SMA.Entities.Models.Student'
    voici le fichier Model Student.cs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public partial class Student : BaseEntity
    ****{
    *******
    ********public string FirstName { get; set; }
    ********public string LastName { get; set; }
    *
    **public Student()
    ********{
    ************Marks = new List<Mark>();
    ************StudentComments = new List<StudentComment>();
    ********}
    *
    ********public Student(string Firstname)
    ********{
    ************this.FirstName = FirstName;
    ************Marks = new List<Mark>();
    ************StudentComments = new List<StudentComment>();
    ********}
    ****}
    et le fichier d'initialisation de la base de données ProjetInitialize.cs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var Students = new List<Student>
    ************{
    ************new Student{FirstName="sam", LastName="9"},
    ************}
    comment je peux s'il vous plaît résoudre le problème et récupérer le "FirstName" et le "LastName" de Student selon le champ mis en valeur dans la requête "name" dans le studentController

    merci pour l'aide

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur .Net
    Inscrit en
    Décembre 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 71
    Points : 147
    Points
    147
    Par défaut Pour l'erreur de conversion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot implicitly convert type 'System.Collection.Generic.List<Projet.Entities.Models.Student> ' to 'SMA.Entities.Models.Student'
    Pour cette erreur, il n'y a malheureusement pas la ligne où cette erreur est catcher. Mais c'est une simple erreur de Cast. Tu utilise surement deux classes Student différente ( une pour ta base et une pour "travailler" ).

    Pour éviter ce problème tu doit sois créer une Interface ( non conseiller si tes classes Student ne contient que des attributs ), sinon la faire étendre de 'SMA.Entities.Models.Student' ou uniquement utiliser 'SMA.Entities.Models.Student'.

    Sinon la façon pas très propre est de convertir ton objet à la main.

    Si tu peux apportez plus d'information par rapport à cette erreur et ces deux classes on pourra t'aider plus facilement.

  3. #3
    Membre habitué Avatar de linke
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 119
    Points : 139
    Points
    139
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot implicitly convert type 'System.Collection.Generic.List<Projet.Entities.Models.Student> ' to 'SMA.Entities.Models.Student'
    ça veut dire que tu attend un étudiant, alors que le résultat te retourne une collection.

Discussions similaires

  1. RESTful web services+ Message Body Writer
    Par Samer Hm dans le forum Services Web
    Réponses: 0
    Dernier message: 10/05/2011, 12h36
  2. Restful web service (Message Body Writer)
    Par Samer Hm dans le forum Services Web
    Réponses: 2
    Dernier message: 08/04/2011, 16h34
  3. RESTful web services et MapFishProtocol
    Par Saroukh Spoutnik dans le forum REST
    Réponses: 0
    Dernier message: 26/02/2009, 13h47
  4. Réponses: 1
    Dernier message: 27/04/2007, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo