Pregunta


Simplemente no sé cómo explicar esto claramente. Así que creo un patrón de imagen simple de lo que hice.
Mi pregunta es, ¿cómo podría acceder a mi base de datos en otra clase en LS?
He estado buscando en la red, pero no encontré ninguna solución. Espero encontrarlo aquí.
¡Gracias!.enter image description here


Cualquier sugerencia ya es apreciada.

¿Fue útil?

Solución

Gracias por la respuesta Bryan, pero encontré la respuesta sobre mi problema aquí Richard Waddell


Esto es lo que hice para lograr mi objetivo.

  1. Cambie su proyecto LS a la vista de archivos
  2. Vaya a la carpeta "Común", en la carpeta "UserCode", cree una clase (por ejemplo, Authenticate.cs) y ponga estos códigos.

El código sigue:

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

Entonces ahora puedes llamar al Authenticate.GetCurrentUser() en cualquier lugar del proyecto.
¡Gracias!

Otros consejos

La principal diferencia es el primer conjunto de código que funciona se ejecuta dentro de una pantalla. Para su clase de autenticación, debe hacer los siguientes pasos para acceder a la base de datos.

Nota: Supongo que su fuente de datos tiene el nombre predeterminado de ApplicationData ya que ocultó el nombre, si no, realiza los cambios correspondientes. Si se trata de una fuente de datos completamente diferente, cambie "_intrinsicData" en los pasos a continuación)

Estos pasos se toman del Sitio web de Ayuda de LightSwitch

  1. Navegue a ..ServerGenerated GeneratedArtifacts (en el proyecto LightSwitch) y haga clic en ApplicationData.cs y agregue como enlace.

  2. Agregue el siguiente código a continuación, este código crea dinámicamente una conexión a la base de datos. LightSwitch usa "_intrinsicData" como cadena de conexión.

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

Deberías poder acceder a él Context.adminusers

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top