2013-03-25 41 views
0

我有一个20+类的简单集合。它们都是可序列化的,以允许在Web服务中使用这些对象。 (DataContract/DataMember)每个人都有一个ID和一个可变数量的其他属性,具体取决于类别。
而且我有一个数据库,它将只存储一个ID,一个标识该类的名称和一个XML字符串。而且这个XML也是以序列化的形式存在的数据,但没有一个属性:ID字段不应该被存储,因为它是多余的。
但是,ID仍然必须发送到Web服务的客户端,使事情有点复杂。尽管我可以为每个类创建一个副本,其中一个的ID为DataMember,另一个没有,但我只是寻找一个更清晰的解决方案来解决此问题。我不需要在数据库中存储ID字段作为XML的一部分。
所以,问题:确保ID成为发送到客户端的数据的一部分的最简单的解决方案是什么,但是在将其存储为XML时跳过了数据? (不需要在XML黑客将其删除的。)带或不带特定字段的数据序列化

+0

附加说明:我的Web客户端会根据它的ID和业务后会发现基于此ID的正确记录呼叫数据,将数据转换为指定类的适当对象和ID添加到该对象然后再发送回客户端。如果没有ID,我永远都不需要这个对象,但是我需要将它没有ID地存储在数据库中,因为它是多余的。 (而且这会让ID变得更难。) – 2013-03-25 17:20:51

回答

1

虽然我可以只创建的每一个类,其中一个具有 ID作为数据成员和其他没有

副本

遗传怎么样?

public class MyEntity 
{ 
    // some props 
} 

public class MyEntityWithId : MyEntity 
{ 
    public int Id { get; set; } 
    // some props 
} 
+0

继承会使类的数量增加一倍,这不是很理想。这也意味着我需要在这些类之间复制数据... – 2013-03-25 17:18:13

+0

虽然我完全同意类的数量,但第二个问题可以使用任何映射器(如Automapper)轻松解决。 – Dennis 2013-03-25 17:27:00