私はこれらのようなモデルを持っています
clients(id,name,address)
cars(id,platenum)
client_cars(clientid,carid)
私がやりたいのはに追加cars
することclient
で、データはテーブルに保存されclient_cars
ます。データを追加するフォームには、プレート番号のチェックボックスがあります。この種のアイデアを実現する良い例を知っている人はいますか?
私はこれらのようなモデルを持っています
clients(id,name,address)
cars(id,platenum)
client_cars(clientid,carid)
私がやりたいのはに追加cars
することclient
で、データはテーブルに保存されclient_cars
ます。データを追加するフォームには、プレート番号のチェックボックスがあります。この種のアイデアを実現する良い例を知っている人はいますか?
EFを使用すると、概念モデルに多対多のテーブルを含めるべきではありません。店舗モデルのみです。オブジェクトは次のようになります。
clients(id,name,address, cars[])
cars(id,platenum, clients[])
UIには通常、クライアント情報と車のリストを含むクライアントフォームがあります。さらに、あなたの車は
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; }
}
ユーザーインロール
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");
});
}
申し訳ありませんが、コードを簡単にすることもできましたが、元のクラスから何も変更したくありませんでした。しかし、これはほとんどあなたにそれを行う方法についてのアイデアを与えるはずです.
この例を見つけて、私の質問に答えます: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/updating-related-data-with-the-entity-framework -in-asp-net-mvc-アプリケーション