他のクラスのLightSwitchでデータベースにアクセスする方法は?
-
29-10-2019 - |
質問
これをはっきりと説明する方法がわかりません。だから私は自分がしたことのシンプルな画像パターンを作成します。
私の質問は、LSの他のクラスのデータベースにどのようにアクセスできるかということです。
私はネットで検索してきましたが、解決策は見つかりませんでした。ここで見つけることを願っています。
ありがとう!。
どんな提案にもすでに感謝されています。
解決
答えてくれてありがとうブライアンですが、ここで私の問題の答えを見つけました リチャード・ワデル
これが私の目標を達成するために私がしたことです。
- LSプロジェクトをファイルビューに切り替えます
- 「usercode」フォルダーの下にある「common」プロジェクトに移動し、クラスを作成します(例:
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()
プロジェクトのどこでも。
ありがとう!
他のヒント
主な違いは、画面内で実行されているコードの最初のセットです。認証クラスには、データベースにアクセスするために次の手順を実行する必要があります。
ノート: 名前を隠した場合、それに対応する変更を加えるため、DataSourceにはApplicationDataのデフォルト名があると仮定しています。それがまったく異なるデータソースの場合は、以下の手順で「_intrinsicdata」を変更します)
これらの手順はから取得されます Lightswitchヘルプウェブサイト
..Servergenerated generatedArtifacts(LightSwitch Project)に移動し、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