0

WCFサービスでプロセスを遅らせる方法は?

WCF アプリケーションに新しいサービスを追加しました。WCF サービスでメソッドを呼び出すと、データベースが開かれ、LINQ クエリが実行されます。しかし、今では追加のサービスがあります。LINQ クエリが機能しなくなりました。何が問題なのかをデバッグしました。そして、メソッドで(デバッグによって)ステップバックしたときに見たので、LINQクエリを2回呼び出すと、クエリは2回目に正しく実行されます。データベースを開いてからクエリを実行するまでのプロセスに遅延を追加する必要があります。しかし、どのように?

私がしなければならないことを誰か教えてもらえますか?

ありがとう...

サービス内:

namespace MHcService
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    public class ArtiestService : IArtiestService
    {
...
        public ArtiestRecord[] GetArtiestlijst(out ResultClass AResult, int AID_Genre, string AFilter)
        {
            Databeheer FDatabeheer = Databeheer.GetInstance();
            return ArtiestlijstToArray(ArtiestDataManager.Artiestlijst(out AResult, AID_Genre, AFilter));
        }

namespace MHcService.Database
{
    public static class DatabaseControl
    {
        private static Databeheer FDatabeheer = Databeheer.GetInstance();
        public static Databeheer GetDatabeheer { get { return FDatabeheer; } }
    }

    public class Databeheer
    {
...
        public DatamodelDataContext DataContext { get { return FDataContext; } }
        private static Databeheer FUniqueInstance;
        private static object FLockObject = new object();
        public static Databeheer GetInstance()
        {
            if (FUniqueInstance == null)
            {
                lock (FLockObject)
                {
                    if (FUniqueInstance == null)
                    {
                        FUniqueInstance = new Databeheer();
                    }
                }
            }

            return FUniqueInstance;
        }

        private Databeheer()
        {
            Initialize();
        }

        private void Initialize()
        {
            FApplicatieDefinities = ApplicatieDefinities.GetInstance();
            FApplicatieDefinities.Read();

            FDatabasenaam = FApplicatieDefinities.ParamsApplicatie.Databasenaam;
            FPadnaam = FApplicatieDefinities.ParamsApplicatie.Directories[DirectoryIndex.iDIR_DATABASE];
            FServernaam = FApplicatieDefinities.ParamsApplicatie.Servernaam;
            FDbBestandsnaam = FDatabasenaam + ConstAlgemeen.sEXT_MDF;
            FLogBestandsnaam = FDatabasenaam + "_LOG" + ConstAlgemeen.sEXT_LDF;
            FConnectionToSql = new SqlConnection(SqlServerConnectieString);
            FDataContext = new DatamodelDataContext(GetSqlServerConnectie());
        }

メソッドのリンク<= これはメソッドのソースです (LINQ クエリ) この質問では、読みたい回答が得られませんでした。したがって、この質問のソースを表示したくありませんでした。

4

0 に答える 0