我有两个表(表A,表B)与一个有3个有效负载列的连接表(TableAB)连接。 By Payload我指的是除了Id,TableAId和TableBId以外的列。M:M映射 - EF 4.3 CodeFirst(现有数据库)
我可以成功插入到所有表中,但我需要将数据插入Insert上的有效载荷列之一。我使用EF 4.3,Fluent API。谁能帮忙?提前致谢。
public class Organisation : EntityBase<int>, IAggregateRoot
{
public string Name { get; set; }
public string Url { get; set; }
public int CountryId { get; set; }
public int? OwnershipTypeId { get; set; }
public int OrganisationStatusId { get; set; }
public virtual ICollection<Feature> Features { get; set; }
public virtual ICollection<OrganisationType> OrganisationTypes { get; set; }
public virtual ICollection<PricePlan> PricePlans { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class User: EntityBase<Guid>, IAggregateRoot
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string JobTitle { get; set; }
public int? PhoneCallingCodeId { get; set; }
public int? PhoneAreaCode{ get; set; }
public string PhoneLocal { get; set; }
public int? MobileCallingCodeId { get; set; }
public int? MobileAreaCode { get; set; }
public string MobileLocal { get; set; }
public virtual ICollection<Organisation.Organisation> Organisations { get; set; }
}
public class OrganisationUser : EntityBase<int>, IAggregateRoot
{
public DateTime StartDate { get; set; }
public DateTime? EndDate { get; set; }
public int OrganisationRoleId {get; set;}//Foreign Key - have tried leaving it out, tried it as public virtual Organisation Organisation {get;set;
public bool IsApproved { get; set; }
}
public class SDContext : DbContext
{
public ObjectContext Core
{
get
{
return (this as IObjectContextAdapter).ObjectContext;
}
}
public IDbSet<User> User { get; set; }
public IDbSet<Organisation> Organisation { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Organisation>().HasMany(u => u.Users).WithMany(o => o.Organisations).Map(m =>
{
m.MapLeftKey("OrganisationId");
m.MapRightKey("UserId");
m.ToTable("OrganisationUser");
});
//我试图明确界定用流利的外键,但我真的需要明白,一旦我进入我如何添加有效载荷性能和编辑它们。
能否请你告诉你的类(尤其是他们的导航属性)和Fluent映射? – Slauma 2012-03-29 15:20:01
嗨,这真的很重要吗?我知道这些表与POCO正确映射,因为ID全部插入正常。我只是不知道如何访问有效载荷列。比方说,我有一个组织,我添加用户,账单计划等,所以我很想得到相关实体,在foreach循环中使用organisation.Add(entity)将这些集合添加到我的组织中。我如何访问有效负载的连接表 - 我已经为连接创建了一个POCO类。 – user1182263 2012-03-29 18:39:42
是的,这很重要,因为围绕你的问题的漫长沉默证明了这一点。由于您没有提供必要的详细信息,因此您至今没有答案。最后一句是很重要的 - 你的连接表的实体,这将有你的有效载荷列,对不对?那么问题在哪里?加载它,改变它,将它保存...您可以编辑您的问题(“编辑”链接下面的问题)来添加更多的相关信息。 – Slauma 2012-03-29 18:50:27