Niezależnie od tego, w jaki sposób je miksuję, daje mi to błędy. Mam przeczucie, że brakuje mi czegoś oczywistego, bo ciągle dostaję te błędy. wykrytoCodeFirst EF4.1 MVC Przeciw starszej bazie danych - Konflikty wielorakie
jeden lub więcej błędów walidacji podczas generacji modelu:
System.Data.Edm.EdmAssociationType:: multipletowość konflikty z ograniczenia referencyjnego w roli „Venue_Courses_Source” w relacji „Venue_Courses”. Ponieważ wszystkie właściwości w roli zależnej nie są zerowalne, wielość roli głównej musi mieć wartość "1".
System.Data.Edm.EdmAssociationEnd:: Wielość nie jest poprawna w roli "Venue_Courses_Target" w związku "Venue_Courses". Ponieważ Dependent Role odnosi się do kluczowych właściwości, górna granica wielości zależnej rola musi być 1.
Kurs może mieć tylko jedno miejsce, lokali może być używany przez wielu kursach
public class Course
{
[Key]
public virtual int Id { get; set; }
public string Title { get; set; }
public DateTime StartDate { get; set; }
public int VenueId { get; set; }
public virtual Venue Venue { get; set; }
}
public class Venue
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Course> Courses { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
#region Courses
//Table Alias
modelBuilder.Entity<Course>().ToTable("DBSCHEMA.TR_COURSES");
//Keys
modelBuilder.Entity<Course>().HasKey(c => c.Id);
//Joins
//Join to Venues
modelBuilder.Entity<Course>().HasOptional(c => c.Venue);
//Fields
modelBuilder.Entity<Course>().Property(c => c.Id).HasColumnName("COURSE_ID");
modelBuilder.Entity<Course>().Property(c => c.Title).HasColumnName("CR_TITLE");
modelBuilder.Entity<Course>().Property(c => c.StartDate).HasColumnName("START_DATE");
modelBuilder.Entity<Course>().Property(c => c.VenueId).HasColumnName("VENUE_ID");
#endregion
#region Venues
//Table Alias
modelBuilder.Entity<Venue>().ToTable("DBSCHEMA.VENUES");
//Keys
modelBuilder.Entity<Venue>().HasKey(v => v.Id);
//Joins
modelBuilder.Entity<Venue>().HasMany(venue => venue.Courses);
//Fields
modelBuilder.Entity<Venue>().Property(v => v.Id).HasColumnName("VENUE_ID");
modelBuilder.Entity<Venue>().Property(v => v.Name).HasColumnName("VENUE_NAME");
#endregion
}
Wielkie dzięki, cieszę się, że nie tylko ja! ;) –
doh! uratowałeś moje zdrowie psychiczne tam :) –
Właśnie uratowałem mi dużo czasu.Dzięki! –