1

table があれば、テーブル名を取得できますtype。ここみたいに

DataContext dc = new DataContext();
var tableName = dc.Mapping.GetTable(type).TableName.ToString();

私の場合、テーブル名があり、テーブルタイプを取得したいと考えています。しかし、どのように?

:私の場合、テーブル名とタイプは(スペルが)異なりDataContextます。そのため、以下のようにテーブル名を型に変換できません。

Type tableType = Type.GetType("dbo." + tableName);
4

2 に答える 2

0

解決策を見つけたと思いますが、そうでない場合は詳しく説明してください。

DataContextの代わりにDbContext( http://msdn.microsoft.com/en-us/data/jj729737.aspx )を使用することになったことに注意したかっただけです。基本的に名前を変更する派生クラスを作成しようとしましたが、うまくいきませんでした。DataContextは、すべての属性メタデータ([Column]など)を手に持つ必要がありました。わざわざこれを行う場合は、モデルを再コーディングすることもできます(コードの重複であるため、これは悪いことです)。

私の場合、データベースはASP.NETWebAPIプロジェクトによって生成/管理されていました。モデルとデータベースを別の(そして最終的には独立した)クラスライブラリと共有しました。これによりいくつかの問題が発生する可能性があるため、モデルの互換性チェックを無効にしてください。Entity Framework 4.3でモデルの互換性チェックを無効にするにはどうすればよいですか?

于 2013-03-14T18:07:43.257 に答える
0
    var db = new DataContext();
    var tables = db.Mapping.GetTables();
    var tableTypeName = tables.Where(r => r.TableName == "yourTableName").Select(r => r.RowType.Name).FirstOrDefault();
于 2013-04-24T08:53:56.643 に答える