使用Entity从数据库表构建对象时,一对多关系作为集合存储在“one”对象中,默认属性为ICollection类型。
但是,在运行时,对象被实例化为HashSet。
有没有办法在默认情况下配置实体使属性成为HashSet?
目前我正在尝试从asmx Web服务返回实体对象,但ICollection由于是一个接口而无法序列化。我可以通过将对ICollection的所有引用更改为类代码中的HashSet来解决这个问题,但是只要我对实体模型进行更改,就会覆盖它。
答案 0 :(得分:0)
要更改此设置,请更改以下行:navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType,
在Model.tt文件中
navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("HashSet<" + endType + ">") : endType,