【问题标题】:Entity Framework model is not displaying table with composite key实体框架模型未显示具有复合键的表
【发布时间】:2013-05-20 13:55:35
【问题描述】:

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

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

任何建议都会非常有帮助。

【问题讨论】:

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


    【解决方案1】:

    它应该生成如下代码:

    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 类。多对多关系通过每个类上的集合与“外来”类来表达。

    【讨论】:

      猜你喜欢
      • 2014-12-09
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多