【发布时间】:2026-01-23 09:35:01
【问题描述】:
我在查找这方面的信息时遇到了很多麻烦,但由于实体框架定义中的关系,实际上发送的数据过多。我有几张桌子,但重要的是:Application & Owner。由于数据库中的外键约束,这里存在一对多(所有者)关系。 (见下文)
这是问题所在:当我尝试返回单个 Owner 对象时,所有应用程序数据也会在 XML 中发送出去,但我不希望发送任何这些数据。相反,我希望能够创建一个能够在发送应用程序数据时不包含所有者信息的操作(尽管这并不是什么大不了的事)。
我想维护 FK 约束和关系,但限制 WCF 服务返回的数据,但在这里碰壁了。我需要修改什么才能使这项工作。
以下是获取 Owner 对象的代码:
界面:
[OperationContract]
[WebGet(UriTemplate = "Apps/{id}/{ownernum}", BodyStyle = WebMessageBodyStyle.Bare)]
[Description("Gets specific owner information from the database using an appid and owner number")]
Owner GetOwnerInfo(string id, string ownernum);
实现(删除验证和其他多余代码):
public Owner GetOwnerInfo(string id, string ownernum)
{
...
Owner owner = entities.Owners.SingleOrDefault(o => o.AppId == appId && o.OwnerNumber == ownerNumber);
if (owner != null)
{
logger.Info("Owner {0} from application id {1} sent via HTTP GET", ownerNumber, appId);
return owner;
}
else
{
logger.Warn("Cannot find owner {0} from application id {1}", ownerNumber, appId);
throw new WebFaultException<string>(string.Format("Cannot find Owner {0} from AppId {1}", ownerNumber, appId), HttpStatusCode.NotFound);
}
...
}
【问题讨论】:
-
可以看到您的网络服务方法中的代码吗?你在使用 WCF 数据服务吗?
-
@robbell 当然。我将发布获得所有者的代码。给我一分钟格式化它。
-
@RobBell 已添加...如果您正在寻找其他内容,请告诉我
标签: c# .net entity-framework wcf