Проблемы MVC3 EF для нескольких таблиц - PullRequest
1 голос
/ 08 февраля 2012

Я разрабатываю базу данных с 3 таблицами

Модель поездки:

    [Key]
    public int TripId { get; set; }

    [ForeignKey("Driver")]
    public int DriverId { get; set; }
    public virtual Driver Driver { get; set; }

    public string StartingPoint { get; set; }

    public string Destination { get; set; }

    public DateTime TimeDepart { get; set; }

    public int SeatAvailable { get; set; }

    public virtual ICollection<Driver> Drivers { get; set; }

    public virtual ICollection<Passenger> Passengers { get; set; }

Модель водителя:

    [Key]
    public int DriverId { get; set; }

    public string DriverName { get; set; }

    [ForeignKey("Trip"), Column(Order = 0)]
    public int TripId { get; set; }
    public virtual Trip Trip { get; set; }

И последняя модель пассажира:

    [Key]
    public int PassengerId { get; set; }

    public string PassengerName { get; set; }

    [ForeignKey("Trip"), Column(Order = 1)]
    public int TripId { get; set; }
    public virtual Trip Trip { get; set; }

С:

    public class LiveGreenContext: DbContext
    {
        public DbSet<Trip> Trips { get; set; }
        public DbSet<Driver> Drivers { get; set; }
        public DbSet<Passenger> Passengers { get; set; }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
    }

И я получаю следующую ошибку:

Невозможно проверить совместимость модели, так как тип EdmMetadata не был включен в модель.Убедитесь, что IncludeMetadataConvention была добавлена ​​в соглашения DbModelBuilder.

Есть какие-либо решения по этому вопросу?Спасибо!

1 Ответ

0 голосов
/ 08 февраля 2012

Попробуйте добавить вызов к методу Database.SetInitializer в обработчике событий Application_Start вашего Global.asax:

Database.SetInitializer<ContextName>(null);

, где ContextName - имя вашего пользовательского DbContext class.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...