Я хочу добиться:Прямая навигацию в Entity Framework 6
public class A
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<B> Bs { get; set; }
}
public class B
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<A> As { get; set; }
}
public class C
{
public int AID { get; set; }
public int BID { get; set; }
public string OtherProperty { get; set; }
}
А и В много много, к которым присоединились C. Однако, C также имеет некоторые из его собственных свойств, поэтому я необходимо представить его.
Я хочу перейти от A непосредственно к Bs, не пропуская сначала C. (и от B до As)
Это было бы легко, если бы C просто присоединился к A и B без дополнительных свойств. Но поскольку C имеет дополнительные свойства, и мне нужно его представлять, я получаю следующую ошибку.
Невозможно автоматически привязать свойство навигации «Bs» к типу сущности «A» для набора объектов или одноэлементного «A», потому что есть два или более подходящих набора сущностей или одноточечных объектов. Соответствующие сущности или одиночные единицы: B, Bs.
Вот мое отображение помогает ...
modelBuilder.Entity<A>()
.HasMany<B>(x => x.Bs)
.WithMany(x => x.As)
.Map(x =>
{
x.MapLeftKey("a_id");
x.MapRightKey("b_id");
x.ToTable("c");
});
Можете ли вы написать пользовательские 'CConfiguration: EntityTypeConfiguration'? –
abatishchev
@abatishchev Я не знаком, не могли бы вы объяснить? – hatcyl
См. Http://www.remondo.net/code-first-fluent-api-entity-type-configuration/, http://www.entityframeworktutorial.net/code-first/entitytypeconfiguration-class.aspx и т. Д. – abatishchev