powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Коллекции (Cache feat. C#)
2 сообщений из 2, страница 1 из 1
Коллекции (Cache feat. C#)
    #36018846
armin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток! У меня вопрос по работе с коллекцией объектов с кеше класса

Есть мембер:
Collection<STACIONAR.F003> F003Collection = new Collection<STACIONAR.F003>();

Как мне сюда запихнуть коллекцию объектов с STACIONAR.F003 ????....ну типа:
this.F003Collection = this.Manager.GetAll();

шоб патом пройтись по коллекции:
foreach (STACIONAR.F003 entity in F003Collection)
{
// проверка
}

Вобщем вопрос заключается в том как должен выглядеть код метода GetAll() менеджера Manager ????

Может я как то не так мыслю!!???
...
Рейтинг: 0 / 0
Коллекции (Cache feat. C#)
    #36019936
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, правильно ли я Вас понял, но попробую ответить.

Есть следующие классы:
Код: plaintext
1.
2.
3.
4.
Class STACIONAR.F003 Extends %Persistent
{
Property b As %Integer;
}
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Include %occStatus
Class test.a [ Abstract ]
{

ClassMethod GetAll1() As %ListOfObjects
{
  #dim res As %ListOfObjects=##class(%ListOfObjects).%New() ;данный синтаксис появился в версии  2009 . 1 
  ;заполняете коллекцию как Вам угодно
  d res.Insert(##class(STACIONAR.F003).%OpenId( 1 ))
  d res.Insert(##class(STACIONAR.F003).%OpenId( 2 ))
  d res.Insert(##class(STACIONAR.F003).%OpenId( 3 ))
  q res
}

ClassMethod GetAll2(Output res As %ListOfObjects) As %Status
{
  set res=##class(%ListOfObjects).%New()
  ;заполняете коллекцию как Вам угодно
  d res.Insert(##class(STACIONAR.F003).%OpenId( 1 ))
  d res.Insert(##class(STACIONAR.F003).%OpenId( 2 ))
  d res.Insert(##class(STACIONAR.F003).%OpenId( 3 ))
  q $$$OK
}

}

Далее необходимо для них сгенерировать прокси-классы (в виде *.cs или *.dll)

C#-код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
using System;
using InterSystems.Data.CacheClient;
using InterSystems.Data.CacheTypes;

namespace Test
{
  class Program
  {
    static void Main()
    {
      using (var cn = new CacheConnection("server=localhost;port=1972;namespace=TEST;uid=_system;pwd=SYS"))
      {
        cn.Open();
        var res1 = test.a.GetAll1(cn);
        foreach (STACIONAR.F003 o in res1)
        {
          Console.WriteLine(o.b);
        }

        Console.WriteLine("-------");

        CacheListOfObjects res2 = null;
        test.a.GetAll2(cn, ref res2);
        foreach (STACIONAR.F003 o in res2)
        {
          Console.WriteLine(o.b);
        }

        Console.WriteLine("OK");
      }
    }
  }
}

Using Collections
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Коллекции (Cache feat. C#)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]