示例#1
0
        public void Associate(IMany2ManyRelationshipMetadata relationship, IRecord record1, IRecord record2)
        {
            var associationRecord = new RecordObject(relationship.IntersectEntityName);

            associationRecord.SetField(relationship.Entity1IntersectAttribute, record1.Id, this);
            associationRecord.SetField(relationship.Entity2IntersectAttribute, record2.Id, this);
            _records.Add(associationRecord);
        }
示例#2
0
        public override IEnumerable <IRecord> GetRelatedRecords(IRecord recordToExtract,
                                                                IMany2ManyRelationshipMetadata many2ManyRelationshipMetadata,
                                                                bool from1)
        {
            var intersects =
                _records.Where(
                    r =>
                    r.Type == many2ManyRelationshipMetadata.IntersectEntityName &&
                    r.GetStringField(from1
                            ? many2ManyRelationshipMetadata.Entity1IntersectAttribute
                            : many2ManyRelationshipMetadata.Entity2IntersectAttribute) == recordToExtract.Id);
            var matchField = from1
                ? many2ManyRelationshipMetadata.Entity2IntersectAttribute
                : many2ManyRelationshipMetadata.Entity1IntersectAttribute;
            var matchType = from1
                ? many2ManyRelationshipMetadata.RecordType2
                : many2ManyRelationshipMetadata.RecordType1;

            return
                (Clone(GetRecordsOfType(matchType).Where(r => intersects.Select(i => i.GetStringField(matchField)).Contains(r.Id)), null));
        }
示例#3
0
 public virtual void CreateOrUpdate(IMany2ManyRelationshipMetadata relationshipMetadata)
 {
     throw new NotImplementedException();
 }
示例#4
0
 public virtual IEnumerable <IRecord> GetRelatedRecords(IRecord recordToExtract, IMany2ManyRelationshipMetadata many2ManyRelationshipMetadata, bool from1)
 {
     throw new NotImplementedException();
 }