public void FK_from_base_should_throw()
        {
            var modelBuilder = new AdventureWorksModelBuilder();

            modelBuilder.Ignore<PrincipalBase>();
            modelBuilder.Entity<DependentBase>().Ignore(d => d.PrincipalNavigation);
            modelBuilder.Entity<DerivedDependent>()
                        .HasRequired(d => d.DerivedPrincipalNavigation)
                        .WithMany(p => p.DerivedDependentNavigations)
                        .HasForeignKey(d => d.PrincipalNavigationId);

            Assert.Throws<InvalidOperationException>(
                () => BuildMapping(modelBuilder))
                  .ValidateMessage("ForeignKeyPropertyNotFound", "PrincipalNavigationId", "DerivedDependent");
        }
        public void PK_as_FK_with_many_to_one_should_throw()
        {
            var modelBuilder = new AdventureWorksModelBuilder();

            modelBuilder.Ignore<PrincipalBase>();
            modelBuilder.Entity<DerivedDependent>()
                        .HasRequired(d => d.DerivedPrincipalNavigation)
                        .WithMany(p => p.DerivedDependentNavigations)
                        .HasForeignKey(d => d.Id);

            Assert.Throws<ModelValidationException>(
                () => BuildMapping(modelBuilder));
        }
        public void FK_from_base_should_throw()
        {
            var modelBuilder = new AdventureWorksModelBuilder();

            modelBuilder.Ignore<PrincipalBase>();
            modelBuilder.Entity<DependentBase>().Ignore(d => d.PrincipalNavigation);
            modelBuilder.Entity<DerivedDependent>()
                .HasRequired(d => d.DerivedPrincipalNavigation)
                .WithMany(p => p.DerivedDependentNavigations)
                .HasForeignKey(d => d.PrincipalNavigationId);

            Assert.Equal(Strings.ForeignKeyPropertyNotFound("PrincipalNavigationId", "DerivedDependent"),
                         Assert.Throws<InvalidOperationException>(() =>
                                                                  modelBuilder.BuildAndValidate(
                                                                      ProviderRegistry.Sql2008_ProviderInfo)).Message);
        }