예제 #1
0
 public MappingManyToManyView(
     ManyToManyNavigation manyToManyNavigation,
     ManyToManyStoreTable manyToManyStoreTable,
     ManyToManyKeys manyToManyKeys)
 {
     this.manyToManyNavigation = manyToManyNavigation;
     this.manyToManyStoreTable = manyToManyStoreTable;
     this.manyToManyKeys       = manyToManyKeys;
 }
예제 #2
0
        public void ManyToManyNavigationShouldBeCorrect()
        {
            var entityTypeBuilder = new EntityTypeBuilder();

            var posts = entityTypeBuilder
                        .Name("My.Posts")
                        .WithProperty <int>("ID")
                        .WithKeys("ID")
                        .Build();

            var tags = entityTypeBuilder
                       .Name("My.Tags")
                       .WithProperty <int>("ID")
                       .WithKeys("ID")
                       .Build();

            var builder     = new NavigationPropertyBuilder();
            var postsToTags = builder
                              .FromRole(posts, RelationshipMultiplicity.Many)
                              .ToRole(tags, RelationshipMultiplicity.Many)
                              .Map("ID", "Post_ID")
                              .Build();

            var tagsToPosts = builder
                              .FromRole(tags, RelationshipMultiplicity.Many)
                              .ToRole(posts, RelationshipMultiplicity.Many)
                              .Map("ID", "Tag_ID")
                              .WithSameRelationshipAs(postsToTags)
                              .Build();

            posts.AddNavigationProperty(postsToTags);
            tags.AddNavigationProperty(tagsToPosts);

            var testSubject = new ManyToManyNavigation(tagsToPosts);

            testSubject.HasMany.Name.Should().Be("Posts");
            testSubject.HasManyEntity.Should().BeSameAs(tags);
            testSubject.HasManyEndMember.Name.Should().Be("Tags");

            testSubject.WithMany.Name.Should().Be("Tags");
            testSubject.WithManyEntity.Should().BeSameAs(posts);
            testSubject.WithManyEndMember.Name.Should().Be("Posts");
        }