我按照发现的here教程在Visual Studio 2015中构建了一个简单的ADO.Net MVC项目。我的项目有效,但我想在数据库中添加更多表,并在它们和现有表之间创建几个外键关系。我添加了一个ADO.Net实体数据模型(项目属性>添加>新项目>数据> ADO.Net实体数据模型>来自数据模型的EF Designer),并选择了所有表格。我正在使用随Visual Studio安装的(localdb)\ MSSQLLocalDB。
我的目的是在.edmx图中创建我的新表和FK关系,然后" Forward Engineer"修改后的模型回到数据库中。但是,ASP.NET MVC模板创建的6个表中只有5个被添加到表中。未添加AspNetUserRoles表。
任何人都可以解释为什么没有添加表格以及我应该做些什么来创建新表格和关键关系?我更喜欢在图形环境中工作,因为我不是DB / SQL专家。
答案 0 :(得分:11)
对于任何想这个的人:
如果您有一个由两个外键组成的表组合形成表主键而表中没有其他属性,则实体框架不会将此表添加到模型中,尽管它存在于后台。
您不需要中间的Join表。 EF将添加Navigation属性。
所以在这种情况下你会使用类似的东西: (用户对象).Roles.add(新用户对象); 保存上下文更改以进行更新;
答案 1 :(得分:0)
您最初生成模型时未选择AspNetUserRoles。 请使用复选框选择所需的表。
要添加它,右键单击设计器,从上下文菜单中选择“从数据库更新模型...”。在第一个标签“添加”下。展开“Tables”,然后展开“dbo”并使用复选框和您可能需要的其他表格选择“AspNetUserRoles”。单击“完成”按钮以更新“模型和EDMX”
答案 2 :(得分:0)
Ef需要表中的主键。如果表格中缺少的主要内容会忽略该表格。Find details here
答案 3 :(得分:0)
您可以在交叉表中添加主键列。那么问题就解决了