2013-10-10 30 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

不是没有编辑生成的文件。可以使用部分类将属性添加到类型,并将成员添加到该类型 - 但不能将属性添加到部分类的另一部分中的成员。如果可以的话,这将是很好的,我同意。

相关问题