entity framework 4.1 - relación unidireccional de muchos a muchos con Code First Entity Framework
entity-framework-4.1 (1)
Utilizar esta:
public class User {
public int UserId { get; set; }
public string Email { get; set; }
// You must use generic collection
public virtual ICollection<Customer> TaggedCustomers { get; set; }
}
public class Customer {
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Y mapearlo con:
modelBuilder.Entity<User>()
.HasMany(r => r.TaggedCustomers)
.WithMany() // No navigation property here
.Map(m =>
{
m.MapLeftKey("UserId");
m.MapRightKey("CustomerId");
m.ToTable("BridgeTableForCustomerAndUser");
});
Soy nuevo en EF, y estoy tratando de obtener una relación unidireccional de muchos a muchos con el enfoque del código primero. Por ejemplo, si tengo dos clases siguientes (no mi modelo real) con una relación N * N entre ellas, pero ninguna propiedad de navegación del lado del "Cliente".
public class User {
public int UserId { get; set; }
public string Email { get; set; }
public ICollection TaggedCustomers { get; set; }
}
public class Customer {
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
El código de mapeo se parece a ...
modelBuilder.Entity()
.HasMany(r => r.TaggedCustomers)
.WithMany(c => c.ANavgiationPropertyWhichIDontWant)
.Map(m =>
{
m.MapLeftKey("UserId");
m.MapRightKey("CustomerId");
m.ToTable("BridgeTableForCustomerAndUser");
});
Esta sintaxis me obliga a tener "WithMany" para la entidad "Cliente". La siguiente url dice: "Por convención, Code First siempre interpreta una relación unidireccional como uno a muchos".
¿Es posible anularlo o debo usar algún otro enfoque?