【发布时间】:2011-04-12 19:16:56
【问题描述】:
是否可以从由实体类型集合组成的 WCF 数据服务返回复杂类型?
例如:
//the complex type to return
class Entities
{
ICollection<Contract> Contracts;
...
}
//configuration
public partial class MyContext: DbContext
{
public MyContext()
: base("name=DBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.ComplexType<Entities>();
modelBuilder.Entity<Contract>().HasKey(c=>c.Id);
...
}
...
}
//the WCF Data Service
public class PricingDataService : DataService<ObjectContext>, IDisposable
{
[WebGet]
public Entities GetEntities()
{
return new Entities();
}
}
当我尝试上述配置时,我得到一个异常:
" The exception message is 'One or more validation errors
were detected during model generation: System.Data.Edm.EdmEntityType: Name:
Each type name in a schema must be unique. Type name 'Contract' was already
defined."
【问题讨论】:
-
当你尝试这个时会发生什么?
-
我得到一个异常:“异常消息是'在模型生成过程中检测到一个或多个验证错误:System.Data.Edm.EdmEntityType:名称:模式中的每个类型名称必须是唯一的。类型名称“合同”已定义。”
-
所以,这似乎与返回复杂类型无关。你的模型有问题。
-
我不明白为什么我的模型会出现问题,因为当我评论这行代码时:modelBuilder.ComplexType
();错误消失了。 -
那么,
modelBuilder构建的是什么?我们是否都在查看相同的错误消息? "在模型生成期间检测到一个或多个验证错误"
标签: c# .net wcf wcf-data-services entity-framework-4.1