2017-05-27 59 views
-1

我正在製作兩個對象之間的映射函數。我沒有使用任何外部庫的原因是我只需要映射一次。如何引用ICollection屬性?

所以我的對象Project映射到對象Template。 對象'項目'具有名爲ProjectPhases的子實體的虛擬ICollection,對象'模板'具有名爲TemplatePhases的子實體的虛擬ICollection。

每當我試着等同以下,

Template.TemplatePhases.someProperty = Project.ProjectPhases.someProperty

我得到的錯誤 'ICollection的' 不包含認定中的 'someProperty'。我知道這個問題是因爲它的一個集合,但我該如何解決它?

+1

請出示您的實際代碼。很難說出什麼是模範的東西,代碼的實際部分是什麼導致了你的問題。 – poke

+0

請更清楚。提供一個很好的[mcve],清楚地表明你想要做什麼。狀態_precisely_代碼是做什麼的,以及你真正希望它做什麼。你上面發佈的代碼根本沒有意義;即使忽略第二個'Template'類,通過訪問'someProperty'使用'ProjectPhases'屬性值是不合理的,除非'someProperty'實際上是'ICollection'的一個屬性。 –

+0

你錯過了一些東西,片段不夠好講。但可能你忘記索引集合,比如Project.ProjectPhases [0] .someProperty。一個foreach循環可能會在下一個。 –

回答

-1

我收到錯誤'ICollection'不包含'someProperty'的定義。

這是因爲您公開的集合類型是ICollection,它不知道集合中對象的類型。

最佳移動使用ICollection<T>

更改一個類型安全的集合:

class Project 
{ 
    public ICollection ProjectPhases {get; set; } 
} 

...到:

class Project 
{ 
    public ICollection<Template> ProjectPhases {get; set; } 
} 
+0

向下選民關懷評論? – MickyD

+0

我對downvote的猜測是,這個答案只是假設當問題沒有提供任何有用的信息來回答時,OP的問題可能是什麼樣子。 – poke

+0

@poke啊。很公平。 – MickyD