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

ASP.NET MVC Discussion :

asp.net mvc + orm dataobject.net


Sujet :

ASP.NET MVC

Vue hybride

devstp asp.net mvc + orm... 17/03/2010, 16h20
Arthis mmhhh, il faudrait préciser... 22/03/2010, 11h53
Philippe Vialatte Salut, est-ce que tu... 22/03/2010, 12h10
devstp Séparément, j'ai : - un... 24/03/2010, 09h24
Philippe Vialatte ok, à quel endroit tu... 24/03/2010, 09h48
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut asp.net mvc + orm dataobject.net
    Bonjour,

    je débute en ASP.NET et après plusieurs jours de galères j'ai enfin trouvé les éléments de bases :

    - ASP.NET MVC (je veux du contrôle sur mon code, donc le viewState dégage)
    - Dataobject.net : excellent ORM, je retrouve ce que je faisais avec SQLAlchemy en python.

    Maintenant j'aimerais associer les 2 (qui fonctionnent bien séparément) : c'est à dire créer un projet asp.net mvc avec databoject.net au lieu de linq to sql comme on voit sur tous les guides.

    Mais même en suivant la doc dataobject, j'ai ça ne fonctionne pas...

    merci.

  2. #2
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    mmhhh, il faudrait préciser la question je pense..

  3. #3
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Salut,

    Maintenant j'aimerais associer les 2 (qui fonctionnent bien séparément) : c'est à dire créer un projet asp.net mvc avec databoject.net au lieu de linq to sql comme on voit sur tous les guides.
    est-ce que tu arrives à faire marcher DataObject tout seul ?

    La seule différence entre utiliser linq to sql et un autre ORM, ce sont les deux lignes par controlleur qui récupèrent ou écrivent les données dans la base

    Par contre, si tu as des retours sur DataObject, ca me dit

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  4. #4
    Membre habitué
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Séparément, j'ai :
    - un projet MVC (route/contrôleur/vue...)
    - un projet dataobject.net (2 classes pour faire joujou).

    tous 2 sont fonctionnels et m'ont permis de faire des tests et de me familiariser un peu.

    linq to sql n'est pas un vrai ORM à mon sens. Déjà on dessine graphiquement ses classes (rien avoir mais bon) et ça devient vite le bordel quand on veut ajouter des méthodes (il faut recréer une classe fille qui hérite..). Dataobject.net est simple et suit la philoshophie de sqlAlchemy : une classe, une table et des possibilités puissantes de validation des champs directement intégrées ([EmailConstraint], [PastConstraint]...). De plus Dataobjects se charge entièrement de la construction de la base. J'ai qu'une ligne à changer et il me créer entièrement ma base oracle, sql server, mysql...

    J'essaie donc de créer un projet en utilisant c'est 2 éléments : c'est à dire une application asp.net MVC qui utilise dataobjects au lieu de l'habituel linq to sql.

    Je bloque à ce niveau et malheureusement cet exemple (http://blog.alexyakunin.com/2009/11/aspnet-mvc-sample-nerddinner-port-for.html) n'est pas fonctionnel...

    Si quelqu'un a une piste, je suis preneur.

  5. #5
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Citation Envoyé par devstp Voir le message
    J'essaie donc de créer un projet en utilisant c'est 2 éléments : c'est à dire une application asp.net MVC qui utilise dataobjects au lieu de l'habituel linq to sql.

    Je bloque à ce niveau et malheureusement cet exemple (http://blog.alexyakunin.com/2009/11/...-port-for.html) n'est pas fonctionnel...

    ok, à quel endroit tu bloques, exactement ???

    a la creation du controlleur, de la vue ?
    au moment de ré-écrire les données dans la base ?
    au moment de charger les données ?

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  6. #6
    Membre habitué
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    je bloque sur le simple affichage d'une liste de personnes de ma table :
    L'extrait de ma vue index.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
         <% foreach (var agent in (IEnumerable<MvcApplication3.Models.Agent>)ViewData.Model) { %>
            <tr>     
                <td><%= Html.Encode(agent.Nom)%></td>
                <td></td>
                <td></td>
            </tr>
        <% } %>
    Mon model "Agent" :
    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
        [Serializable]
        [HierarchyRoot]
        [Index("Matricule", Unique = true)]
        [Index("Nom")]
        public class Agent : Entity {
     
            [Field, Key]
            public int Id { get; private set; }
     
            [Field]
            [NotNullConstraint]
            public int Matricule { get; set; }
     
            [Field(Length = 30)]
            [NotNullOrEmptyConstraint]
            public string Nom { get; set; }
     
            [Field(Length = 30)]
            public string Prenom { get; set; }
     
        }
    Mon contrôleur :
    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
            /**
            * GET: /Agent/
            **/
            public ActionResult Index() {
     
                var domain = SessionManager.Domain;
                using (Xtensive.Storage.Session.Open(domain)) {
                    using (var transactionScope = Transaction.Open()) {
                        using (var region = Validation.Disable()) {
     
                            // Querying the storage using regular LINQ query
                            var agents = Query.All<Agent>();
     
                            /**
                            // pour vérifier que ma requete est bonne : et effectivement, elle l'est. Donc ça ne coince pas à ce niveau
                            foreach (var agent in agents) {
                                  Response.Write("<p>" + agent.Nom + "</p>");                            
                            }
                            /**/
     
                            return View(agents);
                        }
                        transactionScope.Complete();
                    }
                }
     
            }

    L'erreur lors de l'accès à GET /Agent :
    Active Session is required for this operation. Use Session.Open(...) to open it.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.InvalidOperationException: Active Session is required for this operation. Use Session.Open(...) to open it.

    Erreur source:

    Ligne 14 : <th>Prénom</th>
    Ligne 15 : </tr>
    Ligne 16 : <% foreach (var agent in (IEnumerable<MvcApplication3.Models.Agent>)ViewData["data"]) { %>
    Ligne 17 : <tr>
    Ligne 18 : <td><%= Html.Encode(agent.Nom)%></td>
    Je dois avoir un soucis de le Session.Open(domain) mais je vois pas où ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sortie de Microsoft ASP.NET MVC Beta
    Par Jérôme Lambert dans le forum Général Dotnet
    Réponses: 17
    Dernier message: 06/11/2008, 23h12
  2. [ASP.NET MVC] C'est quoi ?
    Par DranDane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/09/2008, 11h48
  3. ASP.NET MVC Preview 4
    Par hollywood dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 22/07/2008, 11h57
  4. Framework ASP.NET MVC
    Par superbobo dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 02/07/2008, 16h11
  5. ASP.NET MVC Preview 2
    Par cereal59 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/04/2008, 16h41

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