Domanda


Semplicemente non so come spiegarlo chiaramente. Quindi creo un semplice modello di immagine di quello che ho fatto.
La mia domanda è: come sarei in grado di accedere al mio database in altre classi in LS?
Ho cercato in rete, ma non ho trovato alcuna soluzione. Spero di trovarlo qui.
Grazie!.enter image description here


Qualsiasi suggerimento è già apprezzato.

È stato utile?

Soluzione

Grazie per la risposta a Bryan, ma ho trovato la risposta sul mio problema qui Richard Waddell


Ecco cosa ho fatto per raggiungere il mio obiettivo.

  1. Passa il tuo progetto LS alla visualizzazione file
  2. Vai al progetto "comune", sotto la cartella "usercode", crea una classe (ad es. Authenticate.cs) e metti questi codici.

Il codice segue:

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;
        }
    }
}

Allora ora puoi chiamare il Authenticate.GetCurrentUser() ovunque nel progetto.
Grazie!

Altri suggerimenti

La differenza principale è il primo set di codice che funziona è in esecuzione all'interno di una schermata. Per la tua classe di autenticazione, è necessario eseguire i seguenti passaggi per accedere al database.

Nota: Suppongo che il tuo dati dati abbia il nome predefinito di ApplicationData poiché hai nascosto il nome, in caso contrario, apportare le modifiche corrispondenti. Se si tratta di un settimo posto completamente diverso, modifica "_intrinsicdata" nei passaggi seguenti)

Questi passaggi sono prelevati dal Sito Web di Guida per l'hwitch Light

  1. Passare a ..ServerGenerated GeneratedArtIfacts (nel progetto LightSwitch) e fare clic su ApplicationData.cs e aggiungere come collegamento.

  2. Aggiungi il seguente codice di seguito, questo codice crea dinamicamente una connessione al database. LightSwitch usa "_intrinsicdata" come stringa di connessione.

    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;
        }
    } 

Dovresti essere in grado di accedervi Context.adminusers

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top