2017-04-25 101 views
0

使用實體從數據庫表中構建對象時,一對多關係作爲集合存儲在「一個」對象中,默認屬性爲ICollection類型。更改默認實體集合類型

但是,在運行時,對象被實例化爲HashSet。

是否有任何方法來配置實體默認情況下使屬性成爲HashSet?

當前我試圖從asmx web服務返回實體對象,但是ICollection由於它是一個接口而無法序列化。我可以通過將所有對ICollection的引用更改爲類代碼中的HashSet來解決此問題,但是,只要對實體模型進行更改,就會覆蓋此內容。

回答

0

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

的Model.tt文件內

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