0

モデルを作成しました

public class Moo
{
    public Int32 MooId { get; set; }
    public string Description { get; set; }
    public City CityIdFrom { get; set; }
    public Int32 Weight { get; set; }
}

public class City
{
    public Int32 CityId { get; set; }
    public string Name { get; set; }
}

そして私は書いた

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        System.Data.Entity.Database.SetInitializer(
             new System.Data.Entity.DropCreateDatabaseAlways<DbConnection>());
        ...

Global.asax.csで

要するに-私はここのチュートリアルに従いました。

ただし、次のように列を使用して作成されたデータベーステーブルMooを取得します。

   [MooId]
  ,[Description]
  ,[Weight]
  ,[CityIdFrom_CityId]

しかし、チュートリアルにあったように、私はこれが次のように見えることを期待していました:

   [MooId]
  ,[Description]
  ,[Weight]
  ,[CityIdFrom]

ジェネレーターが不要な_CityIdを追加している理由は何ですか?(リレーションを持つすべてのテーブルの列についても同じです)設定が必要であると確信していますが、問題を表現するのは難しいと思います。

4

2 に答える 2

1

Mooモデルで FK 列を明示的に宣言していません。

CityIdFromプロパティはタイプ のナビゲーション プロパティであり、タイプのCityFK 列ではありませんInt32

したがって、データベースに表示されている列は、EF によって自動的に作成されます。

この列に名前を付けたい場合は、モデルに追加する必要があります。

public class Moo
{
  public Int32 MooId { get; set; }
  public string Description { get; set; }

  public Int32 CityFromId { get; set; }
  public City CityFrom { get; set; }

  public Int32 Weight { get; set; }
}

注: 列名は慣例によるものであるため、EF は何が何と一致するかを把握できます。
最後の と同じ名前を持つためCityFromId、ナビゲーション プロパティのデータベース FK 列も同様です。CityFromId

于 2012-11-26T22:23:00.163 に答える
0

への外部キーを作成しているCity.CityIdため、余分な_CityId. [Column("CityIdFrom")]独自のデフォルト以外のものを使用することをフレームワークに伝えるために、属性を追加する必要があります。

于 2012-11-26T19:24:49.460 に答える