更改默认实体集合类型

时间:2017-04-25 08:39:42

标签: c# entity-framework

使用Entity从数据库表构建对象时,一对多关系作为集合存储在“one”对象中,默认属性为ICollection类型。

但是,在运行时,对象被实例化为HashSet。

有没有办法在默认情况下配置实体使属性成为HashSet?

目前我正在尝试从asmx Web服务返回实体对象,但ICollection由于是一个接口而无法序列化。我可以通过将对ICollection的所有引用更改为类代码中的HashSet来解决这个问题,但是只要我对实体模型进行更改,就会覆盖它。

1 个答案:

答案 0 :(得分:0)

要更改此设置,请更改以下行:navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType,

在Model.tt文件中

navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("HashSet<" + endType + ">") : endType,