2013-03-25 66 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