1

VS 2012 Premium をインストールしたばかりで、PluralSight ASP.Net MVC 4 チュートリアルに従っています。私は第 4 章にいて、プロジェクトは EF 4 Code First を使用して自動的にデータベースを作成します。

奇妙なことに、Restaurant.cs モデル ファイルのプロパティと一致するのではなく、追加のデータベース列が作成されます。

Restaurant.cs には次のものがあります。

namespace OdeToFood.Models
{
    public class Restaurant
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public Address Address { get; set; }
    }
}

ただし、OdeToFoodDB dbo.Restaurants テーブルでは、次のように生成されます。

  • ID (PK、int、null 以外)
  • 名前 (nvarchar(最大)、null)
  • Address_Street (nvarchar(max), null)
  • Address_City (nvarchar(max), null)
  • Address_State (nvarchar(max), null)
  • Address_Country (nvarchar(max), null)

ただし、クラスには Street、City、State、および Country プロパティはありません。ビデオでは、データベースには ID、Name、および Address 列しかありませんが、それがプレリリースの状態で EF を使用していたという事実と関係があるかどうかはわかりません。新しい EF が行ういくつかの大きな仮定はありますか?

ここで何が起こっているのか誰にも考えがありますか?

生成されたデータベース、obj および bin 内のファイルを既に削除し、Restaurant.cs クラスを再作成し、EF4 をアンインストールし、EF5 を追加しましたが、最終結果は何も変わっていません。Restaurant.cs ファイルとは関係のない余分な列をまだ取得しています。

4

1 に答える 1

2

表示されるのは仕様によるものです。Addressは複合型であり、これが複合型がデータベーステーブルで表される方法です。

この例についての説明は、こちらをご覧ください。

于 2012-09-05T05:05:11.353 に答える