我想要在我的域服务中使用类似于以下的方法:
public SystemState GetSystemStatus()
{
return new SystemStatus
{
InterestingStatusValue1 = 1223,
OtherInterstingStatusValue = "abc",
}
}
那是行不通的。不会为 Silverlight 客户端应用程序自动生成任何内容。但是,如果我将其设为 IQueryable 方法,那么我会在客户端上生成一些内容。我将在上下文对象上获得 SystemStates 属性和 Query 方法。
有没有办法使它成为一个简单的 WCF 调用?我想我可以将 WCF Silverlight Enabled 服务添加到我的 RIA 网站,然后设置服务引用(这不对?)(为什么我在 Silverlight 应用程序中看不到服务引用?)
乍一看,RIA 服务似乎强制执行一种非常以数据为中心/简单的 CRUD,这对于表编辑器来说非常有用,但对于在数据网格上拖拽的 LOB 应用程序来说则不然。
您可以使用属性仅返回一个实体(假设 SystemState 是您的实体):
Ex:
[Query(IsComposable = false)]
public SystemState GetSystemStatus()
{
return new SystemStatus
{
InterestingStatusValue1 = 1223,
OtherInterstingStatusValue = "abc",
}
}
请记住,这仍然是一个查询,Ria Services 将在您的 DomainContext 中生成一个方法,如下所示:
EntityQuery<SystemState> GetSystemStatusQuery()
像普通 EntityQuery 一样使用它,但请记住,您无法对返回的对象执行查询操作(排序或过滤)。
如果要在服务器上执行操作,请尝试使用[Invoke]属性。前任:
[Invoke]
public SystemState GetSystemStatus()
{
return new SystemStatus
{
InterestingStatusValue1 = 1223,
OtherInterstingStatusValue = "abc",
}
}
我不知道你的返回类型有多复杂,但我想如果它可以序列化,它就会起作用(不确定)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)