0

嗨,我是 MDS 的新手,我已经设置了 webui/sql db 等所有内容,现在正在寻找编写一个演示控制台应用程序以通过 wcf 服务连接并带回一些数据。

我到处搜索都没有运气,或者找到了我认为是较旧的 api 来获取数据

我应该使用 EnityMember Set 吗?

或者其他获取模型中的数据?

问候

迈克尔

4

1 回答 1

1

我知道现在回答你的问题有点晚了,但我只是偶然发现了它。

我使用以下示例MSDN 博客开始并编写了以下基本 .Net Core 控制台应用程序。尽管远非完整或详细,但我希望我的代码对您有所帮助:

using MDService;
using System;
using System.Threading.Tasks;

namespace MDS_WS_Console
{
    class Program
    {
        private static ServiceClient mdsProxy;

        static void Main(string[] args)
        {
            Console.WriteLine("Connecting ...");
            try
            {
                mdsProxy = CreateMdsProxy("http://192.168.0.101:7101/service/service.svc");
                Console.WriteLine("Connected");
            }
            catch (Exception)
            {
                Console.WriteLine("Error connecting ...");
                Console.ReadKey();
                throw;
            }

            Console.WriteLine("Fetching ...");
            ReadRecordsAsync().Wait();
            Console.ReadKey();
        }

        public static async Task ReadRecordsAsync()
        {
            EntityMembersGetRequest getRequest = new EntityMembersGetRequest();
            EntityMembersGetResponse getResponse = new EntityMembersGetResponse();

            EntityMembersGetCriteria membersGetCriteria = new EntityMembersGetCriteria
            {
                ModelId = new Identifier() { Name = "Model1" },
                EntityId = new Identifier() { Name = "Entity1" },
                VersionId = new Identifier() { Name = "VERSION_1" },
                MemberType = MemberType.Leaf,
                MemberReturnOption = MemberReturnOption.DataAndCounts
            };

            getRequest.MembersGetCriteria = membersGetCriteria;
            //EntityMembersGetResponse getResponse = await mdsProxy.EntityMembersGetAsync(getRequest);
            getResponse = await mdsProxy.EntityMembersGetAsync(getRequest);

            Console.WriteLine("Member information: \n Membercount: {0} | TotalPages: {1}", getResponse.EntityMembersInformation.MemberCount, getResponse.EntityMembersInformation.TotalPages);
            //Console.WriteLine("Members: \n Count: {0}", getResponse.EntityMembers.Members.Count.ToString());

            if (getResponse.EntityMembers.Members.Count > 0)
            {              
                foreach (Member individualMember in getResponse.EntityMembers.Members)
                {
                    Console.WriteLine("----------");
                    Console.WriteLine("Individual Member: \n Id: {0} | Code: {1} | Name: {2}",
                        individualMember.MemberId.Id, 
                        individualMember.MemberId.Code,
                        individualMember.MemberId.Name);
                    for (int i = 0; i < individualMember.Attributes.Count; i++)
                    {
                        Console.WriteLine("Attributes ({0}): \n Id Id: {1} | Id name: {2} | Type: {3} | Value: {4} \n ",
                            i,
                            individualMember.Attributes[i].Identifier.Id,
                            individualMember.Attributes[i].Identifier.Name,
                            individualMember.Attributes[i].Type,
                            individualMember.Attributes[i].Value
                            );
                        if (individualMember.Attributes[i].Type == AttributeValueType.Domain)
                        {
                            Console.WriteLine("Domain attribute");
                        }
                    }
                }

            }
        }

        private static ServiceClient CreateMdsProxy(string mdsURL)
        {
            // create endpoint using URL
            System.ServiceModel.EndpointAddress endptAddress = new System.ServiceModel.EndpointAddress(mdsURL);

            // create and configure WS Http binding
            System.ServiceModel.BasicHttpBinding wsBinding = new System.ServiceModel.BasicHttpBinding();

            // create and return the client proxy
            return new ServiceClient(wsBinding, endptAddress);
        }
    }
}
于 2018-04-25T10:06:17.157 回答