实体框架模型不显示具有组合键的表

时间:2013-05-24 21:26:00

标签: c# visual-studio-2012 entity-framework-5 sql-server-2012 ef-database-first

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

这个表和其他一些非常相似的表非常简单: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,但我也没有成功。

任何建议都会非常有用。

1 个答案:

答案 0 :(得分: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类。通过每个类的集合向“外来”类表达多对多关系。