DomainService 可以返回单个自定义类型吗?

2024-04-18

我想要在我的域服务中使用类似于以下的方法:

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(使用前将#替换为@)

DomainService 可以返回单个自定义类型吗? 的相关文章

随机推荐