繁体   English   中英

如何在其他类的lightswitch中访问数据库?

[英]How to access database in lightswitch in other class?


我只是不知道如何清楚地解释这一点。 所以我创建了一个简单的图像模式。
我的问题是,如何在LS中的其他类中访问我的数据库?
我一直在网上搜索,但我没有找到任何解决方案。 我希望我能在这里找到它。
谢谢!。 在此输入图像描述


任何建议都已经受到赞赏。

感谢Bryan的回答,但我在Richard Waddell找到了我的问题的答案


以下是我为实现目标所做的工作。

  1. 将LS项目切换到文件视图
  2. 转到“Common”项目,在“UserCode”文件夹下,创建一个类(例如Authenticate.cs )并放入此代码。

代码如下:

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

然后,您现在可以在项目中的任何位置调用Authenticate.GetCurrentUser()
谢谢!

主要区别在于第一组工作正在屏幕内运行。 对于Authenticate类,您需要执行以下步骤来访问数据库。

注意:我假设您的数据源具有默认名称ApplicationData,因为您隐藏了名称,如果没有,则进行相应的更改。 如果它是完全不同的数据源,请在以下步骤中更改“_IntrinsicData”

这些步骤取自Lightswitch帮助网站

  1. 导航到..ServerGenerated \\ GeneratedArtifacts(在LightSwitch项目中),然后单击ApplicationData.cs和Add As Link。

  2. 在下面添加以下代码,此代码动态创建与数据库的连接。 LightSwitch使用“_IntrinsicData”作为连接字符串。

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

您应该能够通过Context.adminusers访问它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM