Tim*_*ely 6 database fluent-interface relationships ef-code-first entity-framework-4.1
这可能只是因为我对EF Code First流畅API的了解不足,但我很难过.
我想模拟以下内容:
我想要的表格结构如下:
组
用户
SecondaryGroupAssignments
我一直在试图用EF Code First模拟这个问题,但我无法接受用户和组之间的关系.很抱歉没有发布任何.NET代码(我很高兴),但无论如何它可能都是错的.
有没有办法制作EF模型呢?我假设我必须使用Fluent API进行某种配置.也许更好的问题是:Fluent API是否有任何好的,明确的参考?
谢谢!
Lad*_*nka 16
试试这个(未经测试):
public class Group
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<User> PrimaryUsers { get; set; }
public virtual ICollection<User> SecondaryUsers { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int PrimaryGroupId { get; set; }
public virtual Group PrimaryGroup { get; set; }
public virtual ICollection<Group> SecondaryGroups { get; set; }
}
public class Context : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Group> Groups { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>()
.HasRequired(u => u.PrimaryGroup)
.WithMany(g => g.PrimaryUsers)
.HasForeignKey(u => u.PrimaryGroupId)
.WillCascadeOnDelete(false);
modelBuilder.Entity<User>()
.HasMany(u => u.SecondaryGroups)
.WithMany(g => g.SecondaryUsers)
.Map(m => m.MapLeftKey("UserId")
.MapRightKey("GroupId")
.ToTable("SecondaryGroupAssignments"));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3669 次 |
| 最近记录: |