FileInfoを使用すると、DataContext .dbmlファイルのファイル名を見つけることができます。私はすべてのテーブルの名前を見つけることができますSystem.Data.LINQ.MappingでGetModel(メソッドGetType(NorthwindDataContext))LINQ to SQL:実行時に文字列ファイル名を使用してDataContextを作成する
)
点心のDataModel =新AttributeMappingSource(と:私は宣言提供
さらにそれらの列と関係。
ここジョモ・フィッシャーから優秀なポストへのすべてのこのおかげ:SQLトリックへのLINQ:すべての表[およびコラム】名を取得:http://blogs.msdn.com/jomo_fisher/archive/2007/07/30/linq-to-sql-trick-get-all-table-names.aspx
しかし、どのように私は明示的にDataContextオブジェクトを知らなくても、同じ結果を達成することができますか? 私は、この "置き換える" ことができる方法を意味する:あなたは基本的に自分のデータアセンブリと検索をロードし
Assembly dataAssembly = Assembly.Load("Your.Data.Assembly");
Type dataContextType = dataAssembly.GetTypes()
.FirstOrDefault(x => x.IsSubclassOf(typeof(DataContext)));
:あなたはこのような何かを試みることができる
dim myDCFile as String = "Northwind.dbml"
Dim DataModel = .../... GetType(myDCFile))
おかげでマルク...しかし...あなたはコードスニペットをテストしたことがありますか? 私はVBの人であるため、コードを翻訳しました。 Dim dataAssembly As Assembly = Assembly.Load( "Your.Data.Assembly") Dim dataContextType As Type = dataAssembly.GetTypes()。FirstOrDefault() (typeContent) "は"(Type.GetType(DataContext) "に変換されています なぜか分かりますか?しかし、問題は今VBの主張は、(DataContext)の部分は、 "DataContextは型であり、式として使用することはできません"と述べています まだ殴られた...悲しいことに... –
そして私は最後にTypeOf expressin VBのは言う: "期待されている" ... –
私はC#のコードとしてそれをテストし、 はい。私はVBで翻訳に何が起こっているかを知るのに十分なほどではない。 –