EF Code First: многие ко многим + дополнительное свойство - PullRequest
3 голосов
/ 02 ноября 2011

У меня есть следующие таблицы: Страна, Язык и Страна2 Язык

Country2Language - это таблица связей, которая создает отношение M: M, которое определяется с помощью Fluent Mapping:

mb.Entity<Country>()                             
  .HasMany(e => e.Languages)
  .WithMany(set => set.Countries)                
  .Map(mc =>
         {
           mc.ToTable("Country2Language");
           mc.MapLeftKey("CountryShortName");
           mc.MapRightKey("LanguagesID");                            
         }
      );  

Мой вопрос: как добавить дополнительное свойство DateTime "DateCreated"?

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Будет ли работать создание таблицы с созданным столбцом, а затем установить значение по умолчанию в базе данных для функции GetTime (или это так)? Затем просто используйте сопоставление влево / вправо и позвольте БД автоматически обработать значение по умолчанию для созданного?

В прошлом у меня были проблемы, когда EF хочет вставить ноль в столбцы, если вы не укажете, что столбец - это сгенерированное значение в дБ, но тот факт, что это отношение «многие ко многим», вероятно, не будет ». я даже не знаю, что он там был, и всегда должен позволять ему становиться по умолчанию.

1 голос
/ 02 ноября 2011

Вы должны создать объект для своего отображения, который отображается в таблицу.

public class Country2Language {
    [Key] 
    [Column(Order = 0)] 
    [ForeignKey("CountryShortName")] 
    public int CountryShortname{ get; set; } 

    [Key] 
    [Column(Order = 1)] 
    [ForeignKey("LanguagesID")] 
    public int LanguagesID { get; set; } 

    public DateTime DateCreated {get; set;}
}
...