2017-05-27 67 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