3

我从现有数据库创建了一个实体框架模型,没有任何问题或警告。我遇到了一个没有在代码中生成并且没有出现在模型中的表格。

这张表和其他一些非常喜欢的表都非常简单:2 列,每个外键和一个主键,主键是两个外键的组合。

我正在研究其他一些解决方案,而我读到的最接近的事情是表上根本没有主键。这似乎不是那个问题,因为生成的 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 回答