2013-02-13 254 views
-1

我的这些车型,如这些.NET实体框架许多

clients(id,name,address) 
cars(id,platenum) 
client_cars(clientid,carid) 

我想什么做的就是添加carsclient和数据将被保存到client_cars表。在添加数据的表单中会有板号的复选框。有没有人知道完成这种想法的任何好例子?

+0

在Model First和Code First EF中都有很好的例子来定义多对多关系。不知道你会发现任何UI示例。 – 2013-02-13 19:02:27

回答

1

随着EF,你的概念模型不应该有多对多表。只有在商店模式中。你的对象应该看起来更像是这样的:

clients(id,name,address, cars[]) 
cars(id,platenum, clients[]) 

在界面中,你会通常具有包括客户信息和汽车的列表的客户端形式。此外,你的车

0

您可以随时使用内SimpleMembership的例子,其中有:

角色

[Table("webpages_Roles")]//3 
public class Role 
{ 
    public Role() 
    { 
     Members = new List<Membership>(); 
    } 

    [Key] 
    public int RoleId { get; set; } 

    [StringLength(256)] 
    public string RoleName { get; set; } 

    public ICollection<Membership> Members { get; set; } 
} 

会员

[Table("webpages_Membership")]//1 
public class Membership 
{ 
    public Membership() 
    { 
     Roles = new List<Role>(); 
     OAuthMemberships = new List<OAuthMembership>(); 
    } 

    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int UserId { get; set; } 

    public DateTime? CreateDate { get; set; } 

    [StringLength(128)] 
    public string ConfirmationToken { get; set; } 

    public bool? IsConfirmed { get; set; } 

    public DateTime? LastPasswordFailureDate { get; set; } 

    public int PasswordFailuresSinceLastSuccess { get; set; } 

    [Required, StringLength(128)] 
    public string Password { get; set; } 

    public DateTime? PasswordChangedDate { get; set; } 

    [Required, StringLength(128)] 
    public string PasswordSalt { get; set; } 

    [StringLength(128)] 
    public string PasswordVerificationToken { get; set; } 

    public DateTime? PasswordVerificationTokenExpirationDate { get; set; } 

    public ICollection<Role> Roles { get; set; } 

    [ForeignKey("UserId")] 
    public ICollection<OAuthMembership> OAuthMemberships { get; set; } 
} 

UsersInRole

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Membership>() 
      .HasMany<Role>(r => r.Roles) 
      .WithMany(u => u.Members) 
      .Map(m => 
      { 
       m.ToTable("webpages_UsersInRoles"); 
       m.MapLeftKey("UserId"); 
       m.MapRightKey("RoleId"); 
      }); 
    } 

对不起,我可以让代码更简单,但我不想改变任何东西从原来的类。但是,这非常应该给你一个关于如何去做的想法。