private static MetadataModel GetModel() { var metadataModelBuilder = new MetadataModelBuilder(); metadataModelBuilder.Exclude <EntityBase>(); metadataModelBuilder.Entity <ArticleName>().PrimaryKey.AddRange(new[] { "ArticleId", "LanguageId" }); var articleEntity = metadataModelBuilder.Entity <Article>(); metadataModelBuilder.Entity <ReceiptDetail>(); metadataModelBuilder.Entity <Invoice>().BaseEntity = metadataModelBuilder.Entity(typeof(Receipt)); var contactSettings = metadataModelBuilder.Entity <ContactSettings>(); articleEntity.HasOne(p => p.ArticleSettings).WithPrincipal(); contactSettings.HasOne(p => p.Contact).WithDependant(); metadataModelBuilder.ApplyConventions(); var model = metadataModelBuilder.ToModel(); return(model); }