我最近接手了一個爲LinqPad創建工具的項目,該工具將查詢結果轉儲爲CSV格式,以便在海量數據庫上使用該工具以獲得快速結果。我想要的工具之一就是它能夠在Visual Studio和LinqPad中工作。因此,如果我在VS2010或LinqPad中使用LinqtoSQL,我可以將結果快速轉儲到csv文件,然後將其打開到Excel中以查看結果。爲什麼LinqPad創建字段而不是屬性?
該項目最大的障礙來自於LinqPad如何構建DataContexts與Visual Studio如何構建其DataContexts。我可以找到LinqPad的最佳信息來自here。基本上我從我的項目中發現,VS2010爲其DataContext創建了屬性,但LinqPad創建了Fields。因此,使用反射時:
LinqPad:
dataContextType.GetProperties() //returns 0
dataContextType.GetFields() //returns the Fields from LinqPad created DataContext
VS 2010 LinqToSQL:
dataContextType.GetProperties() //returns the Properties from VS created DataContext
dataContextType.GetFields() //returns 0
那麼,爲什麼LinqPad使用字段而不是屬性在他們的DataContexts?複製Visual Studio LinqToSQL模式不是更可行嗎?
更新
基於評論我決定向LinqPad forum內同樣的問題也是如此。
這不應該直接指向LinqPad的作者嗎? :D無論如何,FieldInfo和PropertyInfo都從MemberInfo繼承,所以你可以重寫你的代碼來處理這兩種情況(稍微調整一下)。 – Jonas 2011-04-14 16:48:28
@Jonas它仍然是StackOverFlow的好信息。儘管它們都從MemberInfo繼承,但它們都有不同的GetValue()方法,我必須同時使用這兩種方法。 – jsmith 2011-04-14 16:58:54