Question


Je ne sais tout simplement pas comment expliquer cela clairement.Je crée donc un modèle d'image simple de ce que j'ai fait.
Ma question est la suivante: comment pourrais-je accéder à ma base de données dans une autre classe en LS?
J'ai cherché sur le net, mais je n'ai trouvé aucune solution.J'espère que je le trouverai ici.
Merci!. entrez la description de l'image ici


Toute suggestion est déjà appréciée.

Était-ce utile?

La solution

Merci pour la réponse Bryan, mais j'ai trouvé la réponse à mon problème ici Richard Waddell


Voici ce que j'ai fait pour atteindre mon objectif.

  1. Basculez votre projet LS en vue fichier
  2. Allez dans le projet "Common", sous le dossier "UserCode", créez une classe (par exemple, Authenticate.cs) et mettez ces codes.

Le code suit:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.LightSwitch;
namespace LightSwitchApplication
{
    public class Authenticate
    {
        public static adminuser GetCurrentUser()
        {
            adminuser userFound = (from useritem in 
            Application.Current.CreateDataWorkspace().basecampcoreData.adminusers
            where useritem.LoginID == Application.Current.User.Name
            select useritem).SingleOrDefault();

            if (userFound != null)
                return userFound;
            else
                return null;
        }
    }
}

Vous pouvez maintenant appeler le Authenticate.GetCurrentUser() n'importe où dans le projet.
Merci!

Autres conseils

La principale différence est que le premier ensemble de code qui fonctionne s'exécute à l'intérieur d'un écran. Pour votre classe Authenticate, vous devez effectuer les étapes suivantes pour accéder à la base de données.

Remarque: je suppose que votre source de données a le nom par défaut ApplicationData puisque vous avez masqué le nom, sinon, apportez les modifications correspondantes. S'il s'agit d'une source de données complètement différente, modifiez "_IntrinsicData" dans les étapes ci-dessous)

Ces étapes sont tirées du Site Web d'aide Lightswitch

  1. Accédez à ..ServerGenerated \ GeneratedArtifacts (dans le projet LightSwitch) et cliquez sur ApplicationData.cs et Ajouter en tant que lien.

  2. Ajoutez le code suivant ci-dessous, ce code crée dynamiquement une connexion à la base de données. LightSwitch utilise "_IntrinsicData" comme chaîne de connexion.

    private ApplicationDataObjectContext m_context;
    public ApplicationDataObjectContext Context
    {
        get
        {
            if (this.m_context == null)
            {
                string connString =
                    System.Web.Configuration.WebConfigurationManager
                    .ConnectionStrings["_IntrinsicData"].ConnectionString;
                EntityConnectionStringBuilder builder = new EntityConnectionStringBuilder();
                builder.Metadata =
                    "res://*/ApplicationData.csdl|res://*/ApplicationData.ssdl|res://*/ApplicationData.msl";
                builder.Provider =
                    "System.Data.SqlClient";
                builder.ProviderConnectionString = connString;
                this.m_context = new ApplicationDataObjectContext(builder.ConnectionString);
            }
            return this.m_context;
        }
    } 

Vous devriez pouvoir y accéder via Context.adminusers

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top