3


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


どんな提案もすでにありがたいです。

4

2 に答える 2

4

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


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

  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()これで、プロジェクト内のどこでも を呼び出すことができます。
ありがとう!

于 2011-12-08T06:03:47.930 に答える
1

主な違いは、機能する最初のコードセットが画面内で実行されていることです。Authenticateクラスの場合、データベースにアクセスするには、次の手順を実行する必要があります。

注:名前を非表示にしたため、データソースのデフォルト名はApplicationDataであると想定しています。非表示の場合は、対応する変更を行います。完全に異なるデータソースの場合は、以下の手順で「_IntrinsicData」を変更してください)

これらの手順は、LightswitchヘルプWebサイトから実行されます。

  1. (LightSwitchプロジェクト内の)..ServerGenerated \ GeneratedArtifactsに移動し、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

于 2011-12-08T02:53:49.723 に答える