Come accedere al database in fulmine in altre classi?
-
29-10-2019 - |
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!.
Qualsiasi suggerimento è già apprezzato.
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.
- Passa il tuo progetto LS alla visualizzazione file
- 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
Passare a ..ServerGenerated GeneratedArtIfacts (nel progetto LightSwitch) e fare clic su ApplicationData.cs e aggiungere come collegamento.
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