您好我是MDS的新手我已经设置了webui / sql db等所有内容,我现在正在寻找一个演示控制台应用程序来通过wcf服务连接并带回一些数据。
我没有运气地搜索过高低,或者发现了我认为是较老的api来获取数据
我应该使用EnityMember Set吗?
或者其他来获取模型中的数据?
此致
迈克尔
答案 0 :(得分:0)
我知道回答你的问题有点迟,但我偶然发现了它。
我使用以下示例MSDN blogs开始编写以下基本的.Net Core Console应用程序。虽然远非完整或详细,但我希望我的代码可以帮助您:
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);
}
}
}