質問


これをはっきりと説明する方法がわかりません。だから私は自分がしたことのシンプルな画像パターンを作成します。
私の質問は、LSの他のクラスのデータベースにどのようにアクセスできるかということです。
私はネットで検索してきましたが、解決策は見つかりませんでした。ここで見つけることを願っています。
ありがとう!。enter image description here


どんな提案にもすでに感謝されています。

役に立ちましたか?

解決

答えてくれてありがとうブライアンですが、ここで私の問題の答えを見つけました リチャード・ワデル


これが私の目標を達成するために私がしたことです。

  1. LSプロジェクトをファイルビューに切り替えます
  2. 「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ヘルプウェブサイト

  1. ..Servergenerated generatedArtifacts(LightSwitch Project)に移動し、ApplicationData.csをクリックしてリンクを追加します。

  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帰属
所属していません StackOverflow
scroll top