【发布时间】:2013-01-24 17:42:16
【问题描述】:
我正在尝试使用返回自定义类型的 ServiceMethod 构建 WCF 数据服务。 这种类型被用作一个容器来一次传输多个数据集合。我无法将此类型定义为实体或复杂类型。
public class BrfPackageDataContainer {
public ICollection<BrfFlight> Flights {
get;
set;
}
public ICollection<BrfFlight_Info> Flight_Infos {
get;
set;
}
public ICollection<BrfInfo> Infos {
get;
set;
}
public BrfPackageDataContainer() {
this.Flights = new List<BrfFlight>();
this.Flight_Infos = new List<BrfFlight_Info>();
this.Infos = new List<BrfInfo>();
}
}
这是我的 ServiceMethod 声明:
[WebGet]
[SingleResult]
public FlightInfoEntities.BrfPackageDataContainer GetBrfPackage () {
var brfPackageDataContainer = new FlightInfoEntities.BrfPackageDataContainer();
brfPackageDataContainer.Demodata();
return brfPackageDataContainer;
}
当我使用一个空的虚拟 DataService 作为服务类定义的数据源时,我运行了这个。但是当我使用我的实体框架模型作为数据源时,由于缺少自定义类型的元数据,服务拒绝启动。 我的问题是: 如何使用 EF 模型作为数据源并且仍然使用我的自定义类型作为我的方法的返回值。
【问题讨论】:
-
我认为不可能。使用 Entity Framework 时,只能使用 EF 模型中定义的类型,并且不能将自定义类型添加到模型中。如果复杂类型对你来说足够了,你可以尝试在你的 EF 模型中添加一个虚拟复杂类型,EF 不会使用它,但你会使用它(警告 - 我没有尝试过)。
标签: entity-framework wcf service