Entity Framework 5、Visual Studio 2010とEntity Framework Power Tools (Beta 2)拡張機能を使用。
これが私のデータベーステーブル構造です:
前述の拡張機能のリバース エンジニア コード ファースト関数を使用して、POCO クラスといくつかの「マッピング」ファイル (正式な用語かどうかは不明) と単一の DbContext 派生クラスを生成しました。次に説明する変更を除いて、これらの生成されたクラスはすべて、パワー ツールによってそのまま生成されます。
オブジェクト グラフを少しフラットにするために、Category.cs ファイルに次のコードを追加しました。
private ICollection<Product> m_Products = null;
public ICollection<Product> Products
{
get
{
if (m_Products == null)
{
m_Products = new List<Product>();
foreach (var categoryProduct in CategoryProducts)
{
m_Products.Add(categoryProduct.Product);
}
}
return m_Products;
}
set { m_Products = value; }
}
次の例外が発生します。これはマッピングと関係があるはずですが、これを完全に理解することはできません。
Unhandled Exception: System.Data.EntityCommandExecutionException: An error occurred while
executing the command definition. See the inner exception for details.
---> System.Data.SqlClient.SqlException:
Invalid column name 'Category_CategoryId'.
マッピングの詳細など、さらに情報を投稿する必要がある場合は、お知らせください。これをできるだけ短くしたかったのですが、ツールによって生成されたコードに慣れていない人にとっては、詳細が必要になるかもしれないいくつかのことを省略していることに気付きました.