3

問題や警告なしで、既存のデータベースから Entity Framework モデルを作成しました。コードで生成されず、モデルにも表示されないテーブルに遭遇しました。

このテーブルと、それに非常によく似た他のいくつかのテーブルは、非常に単純です。2 つの列、それぞれの外部キー、および 2 つの外部キーの合成である 1 つの主キーです。

私は他のいくつかのソリューションを掘り下げていましたが、私が読んだ中で最も近いのは、テーブルに主キーがまったくない場合です。生成された XML は問題なく表示され、エラー メッセージも表示されないため、その問題はないようです。

EDMX の私のテーブル:

    <EntityType Name="UserTaskSubscription">
      <Key>
        <PropertyRef Name="UserID" />
        <PropertyRef Name="TaskID" />
      </Key>
      <Property Name="UserID" Type="int" Nullable="false" />
      <Property Name="TaskID" Type="int" Nullable="false" />
    </EntityType>

また、EDMX をドロップして再作成しようとしましたが、そこでも成功しませんでした。

どんな提案も非常に役に立ちます。

4

1 に答える 1

5

次のようなコードが生成されているはずです。

namespace dbfirstjointable.Models
{
    using System;
    using System.Collections.Generic;

    public partial class Task
    {
        public Task()
        {
            this.Users = new HashSet<User>();
        }

        public int Id { get; set; }
        public string Name { get; set; }

        public virtual ICollection<User> Users { get; set; }
    }
}

namespace dbfirstjointable.Models
{
    using System;
    using System.Collections.Generic;

    public partial class User
    {
        public User()
        {
            this.Tasks = new HashSet<Task>();
        }

        public int Id { get; set; }
        public string Name { get; set; }

        public virtual ICollection<Task> Tasks { get; set; }
    }
}

ここでは UserTask クラスは必要ありません。多対多の関係は、「外部」クラスに対する各クラスのコレクションを通じて表現されます。

于 2013-05-24T22:54:55.617 に答える