我从现有数据库创建了一个实体框架模型,没有任何问题或警告。我遇到了一个没有在代码中生成的表,也没有出现在模型中。
这个表和其他一些非常相似的表非常简单: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,但我也没有成功。
任何建议都会非常有用。
答案 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类。通过每个类的集合向“外来”类表达多对多关系。