2013-10-10 94 views
0

我有一個dbml文件並將一個Products表放到它上面。我現在可以訪問自動生成的Products類文件,這非常棒。將屬性添加到自動生成的Linq到SQL類

我想導出CSV文件的內容並保存到這個表,所以我決定使用LINQ去CSV http://aspnetperformance.com/post/LINQ-to-CSV-library.aspx

看來,爲了使文件讀取,屬性必須是與屬性的裝飾即

<CsvColumn(Name:= "ProductName", FieldIndex:= 1)> 

但是當我使用的產品類返回列名稱不能被發現錯誤(我知道這一點,因爲我創造了一個不同的項目,讀取該文件,而不問題一次以上屬性被添加)

所以我創建了一個局部類和添加的屬性:

<Metadatatype(GetType(ProductsMetadata))> _ 
Partial Public Class Products 

End Class 

Friend Class ProductsMetadata 

<CsvColumn(Name:= "ProductName", FieldIndex:= 1)> 
Public Property ProductName As String 

End Class 

但是這仍然沒有工作。爲什麼我需要添加屬性的原因是爲了當我保存它,我可以在產品的合格對象爲保存方法

myDataContext.Products.InsertOnSubmit(ProductObject) 
myDataContext.SubmitChanges() 

是否有可能以上述方式或任何其他方式,我可以做加屬性這個?

+1

我通常發現,遵循單一責任原則的最佳方法是創建另一個類,它表示要放入CSV文件的數據,並使用LINQ將查詢映射到該類。您的LINQ to SQL類的職責是充當數據層映射,而不是用作CSV導出對象。 – StriplingWarrior

+0

您能指點我一個鏈接,我可以看到這個在行動中,請使用它作爲指導? – Computer

+1

http://bobcravens.com/2009/09/best-practices-for-using-linq-in-your-data-access-layer/ – StriplingWarrior

回答

0

不是沒有編輯生成的文件。可以使用部分類將屬性添加到類型,並將成員添加到該類型 - 但不能將屬性添加到部分類的另一部分中的成員。如果可以的話,這將是很好的,我同意。

相關問題