2013-02-13 298 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"); 
      }); 
    } 

對不起,我可以讓代碼更簡單,但我不想改變任何東西從原來的類。但是,這非常應該給你一個關於如何去做的想法。