嗨,我是 MDS 的新手,我已经设置了 webui/sql db 等所有内容,现在正在寻找编写一个演示控制台应用程序以通过 wcf 服务连接并带回一些数据。
我到处搜索都没有运气,或者找到了我认为是较旧的 api 来获取数据
我应该使用 EnityMember Set 吗?
或者其他获取模型中的数据?
问候
迈克尔
嗨,我是 MDS 的新手,我已经设置了 webui/sql db 等所有内容,现在正在寻找编写一个演示控制台应用程序以通过 wcf 服务连接并带回一些数据。
我到处搜索都没有运气,或者找到了我认为是较旧的 api 来获取数据
我应该使用 EnityMember Set 吗?
或者其他获取模型中的数据?
问候
迈克尔
我知道现在回答你的问题有点晚了,但我只是偶然发现了它。
我使用以下示例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);
}
}
}