2012-10-26 61 views
1

我在將一個對象分配給Linq to SQL中的另一個對象時遇到了問題。在這個例子中:如何在Linq c#中將一個對象分配給另一個對象而無需製作新的

Func<result, result> make = q => new result 
{ 
    Id = q.Id, 
    lName = q.lName, 
    GroupId = q.GroupId, 
    Age = (from tags in q.age where tags.Del == null && tags.lId == q.Id select age).ToEntitySet(), 

}; 

p = (from q in dc.results 
     where q.Id == Id.Value 
     select make(q)).First(); 

我想提出新的分配對象,但我並不想這樣做,它會插入引起的問題。我想分配一個新的對象,這怎麼可能?

+0

爲什麼在查詢('dc.results')已經產生新結果'對象? –

回答

1

Jon Skeet和Marc Gravell有一個名爲MiscUtil的圖書館。裏面MiscUtil。反射有一個叫做PropertyCopy的類,它完全符合你描述的內容。它只適用於.NET 3.5。

它通過運行SourceType的公共屬性進行工作,通過名稱與TargetType的公共屬性進行匹配,確保每個屬性都可以從源分配給目標,然後創建並緩存複製器函數爲這兩種類型(所以你不要每次都做這種反射)。我已經在生產代碼中使用它,並可以保證其良好性。

查看這個帖子了code example

+0

因此,如果沒有這個,有沒有從微軟的支持? – Naruto

+0

如果Jon Skeet和Marc Gravell已經完成了,則不會。 :) – fuzz

+0

我的意思是,如果我這樣做,並調用insertonsubmit()我得到異常,重複密鑰存在,與此我們可以避免? – Naruto

相關問題