我只是不知道如何清楚地解释这一点。所以我创建了一个简单的图像模式。
我的问题是,如何在LS中的其他类中访问我的数据库?
我一直在网上搜索,但我没有找到任何解决方案。我希望我能在这里找到它。
谢谢!。
任何建议都已经受到赞赏。
答案 0 :(得分:4)
感谢Bryan的回答,但我在Richard Waddell
找到了我的问题的答案
以下是我为实现目标所做的工作。
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()
谢谢!
答案 1 :(得分:1)
主要区别在于第一组工作正在屏幕内运行。对于Authenticate类,您需要执行以下步骤来访问数据库。
注意:我假设您的数据源具有默认名称ApplicationData,因为您隐藏了名称,如果没有,则进行相应的更改。如果它是完全不同的数据源,请在下面的步骤中更改“_IntrinsicData”
这些步骤取自Lightswitch Help Website
导航到..ServerGenerated \ GeneratedArtifacts(在LightSwitch项目中),然后单击ApplicationData.cs并添加为链接。
- 醇>
在下面添加以下代码,此代码动态创建与数据库的连接。 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