【发布时间】:2011-01-14 19:38:01
【问题描述】:
所以我有两个像这样的自定义复杂类型(在这个例子中过于简化了):
public class PendingProduct
{
public string Name { get; set; }
public string Description { get; set; }
public int ColorCount { get; set; }
}
假设我需要这个对象知道如何将自己转换为另一种类型:
public class Product
{
public string Name { get; set; }
public string Description { get; set; }
public ProductColors Colors { get; set;}
}
因此,当我调用将 PendingProduct 转换为 Product 的方法时,我将执行一些自定义逻辑,将“ColorCount”数量的 ProductColor 对象添加到 Product 类中。这完全被过度简化了,但是类的体系结构在这里真的无关紧要。
我的主要问题是:
当对象的属性不同时,实现将一种复杂类型转换为另一种复杂类型的最佳实践方法是什么?
在现实世界中,属性非常不同,我将编写一些自定义逻辑来将我需要的内容从对象 A 映射到对象 B。
显然我可以编写一个函数,它接受对象 A 的输入参数并返回对象 B,但我正在寻找一种更“最佳实践”的方法。 IConvertible 在这里发挥作用吗?有没有更类似于 OOP 的东西我可以利用,而不仅仅是编写一个函数来做我想做的事?
对象 A 应该始终知道如何将自己转换为对象 B。
编辑:附带说明,在现实世界中,对象 A 和对象 B 都是 Entity Framework 4 实体。我想获取一个“待定产品”,将其转换为新的产品实体,将其附加到数据上下文并保存。
【问题讨论】:
标签: c# oop entity-framework entity-framework-4