2

我只是在玩 EF5 和数据服务。决定测试暴露SP。将其映射到 FirmInfo 复杂类型。在这个愚蠢的错误中运行。似乎无法弄清楚。

我为我创建了这个复杂类型的 .tt 模板

public partial class FirmInfo
{
    public int FirmID { get; set; }
    public string Name { get; set; }
}

我添加了这个以将其公开给 MyDataService.svc.cs 类:

[WebGet]
public IQueryable<FirmInfo> pSPTest(int id)
{
    return CurrentDataSource.pSPTest(id).AsQueryable();
}

我可以在浏览器中看到它:

- <pSPTest xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
- <element m:type="DB.FirmInfo">
    <FirmID m:type="Edm.Int32">1</FirmID> 
    <Name>Firm Name</Name> 
  </element>
  </pSPTest>

但是当由 c# 客户端应用程序使用时,我不断收到此错误:“Client.ServiceReference.FirmInfo”类型上不存在属性“元素”。确保仅使用类型定义的属性名称。

任何帮助表示赞赏

4

2 回答 2

0

您如何使用 C# 客户端应用程序使用结果?如果您使用的是 WCF 数据服务客户端,您应该调用Execute<T>().DataServiceContext

有关如何使用 WC 数据服务客户端调用服务操作的指导,请查看此文档:http: //msdn.microsoft.com/en-us/library/hh230677.aspx

于 2013-03-26T20:02:27.690 回答
0

您还可以通过将操作结果声明为您期望的集合类型来实现这一点,就像这样。

var query = context.CreateQuery<ObservableCollection<wsAccountView.organisation>>("GetOrganisationsByUserName").AddQueryOption("UserName", @"'SFN\AO'");
var Organisations = query.ToList();
于 2013-10-02T12:17:43.303 回答