protected void InitializeContext() { var contextMappings = new EntityMappingStore(); var rmp = new ReflectionMappingProvider(); rmp.AddMappingsForAssembly(contextMappings, typeof(LinqToSparqlTests).Assembly); Context = new MockContext(contextMappings); }
static FoafContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.Foaf.IPerson)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.Foaf.IPerson, BrightstarDB.Samples.EntityFramework.Foaf.Person>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Mobile.Tests.EntityFramework.INote)); TypeMappings.SetImplMapping<BrightstarDB.Mobile.Tests.EntityFramework.INote, BrightstarDB.Mobile.Tests.EntityFramework.Note>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(EmailVisualiser.Data.IPersistentEmail)); TypeMappings.AddImplMapping<EmailVisualiser.Data.IPersistentEmail, EmailVisualiser.Data.PersistentEmail>(); }
static FoafContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.Foaf.IPerson)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.Foaf.IPerson, BrightstarDB.Samples.EntityFramework.Foaf.Person>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Mobile.Tests.EntityFramework.INote)); TypeMappings.AddImplMapping <BrightstarDB.Mobile.Tests.EntityFramework.INote, BrightstarDB.Mobile.Tests.EntityFramework.Note>(); }
public MockContext(EntityMappingStore mappingStore) : base(mappingStore) { mappingStore.AddImplMapping <IDinner, Dinner>(); mappingStore.AddImplMapping <ContextObjects.ICompany, ContextObjects.Company>(); mappingStore.AddImplMapping <ContextObjects.IMarket, ContextObjects.Market>(); mappingStore.AddImplMapping <ContextObjects.IPerson, ContextObjects.Person>(); mappingStore.AddImplMapping <IRsvp, Rsvp>(); }
static NotesContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarNotes.DataModel.INote)); TypeMappings.AddImplMapping<BrightstarNotes.DataModel.INote, BrightstarNotes.DataModel.Note>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarNotes.DataModel.INoteCategory)); TypeMappings.AddImplMapping<BrightstarNotes.DataModel.INoteCategory, BrightstarNotes.DataModel.NoteCategory>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.GettingStarted.IActor)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.GettingStarted.IActor, BrightstarDB.Samples.EntityFramework.GettingStarted.Actor>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.GettingStarted.IFilm)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.GettingStarted.IFilm, BrightstarDB.Samples.EntityFramework.GettingStarted.Film>(); }
static NotesContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(GettingStarted.DataModel.ICategory)); TypeMappings.AddImplMapping<GettingStarted.DataModel.ICategory, GettingStarted.DataModel.Category>(); provider.AddMappingsForType(TypeMappings, typeof(GettingStarted.DataModel.INote)); TypeMappings.AddImplMapping<GettingStarted.DataModel.INote, GettingStarted.DataModel.Note>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.ChangeTracking.IArticle)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.ChangeTracking.IArticle, BrightstarDB.Samples.EntityFramework.ChangeTracking.Article>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.ChangeTracking.ITrackable)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.ChangeTracking.ITrackable, BrightstarDB.Samples.EntityFramework.ChangeTracking.Trackable>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.ChangeTracking.IArticle)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.ChangeTracking.IArticle, BrightstarDB.Samples.EntityFramework.ChangeTracking.Article>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.ChangeTracking.ITrackable)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.ChangeTracking.ITrackable, BrightstarDB.Samples.EntityFramework.ChangeTracking.Trackable>(); }
static NotesContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(GettingStarted.DataModel.ICategory)); TypeMappings.AddImplMapping <GettingStarted.DataModel.ICategory, GettingStarted.DataModel.Category>(); provider.AddMappingsForType(TypeMappings, typeof(GettingStarted.DataModel.INote)); TypeMappings.AddImplMapping <GettingStarted.DataModel.INote, GettingStarted.DataModel.Note>(); }
static NotesContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarNotes.DataModel.INote)); TypeMappings.AddImplMapping <BrightstarNotes.DataModel.INote, BrightstarNotes.DataModel.Note>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarNotes.DataModel.INoteCategory)); TypeMappings.AddImplMapping <BrightstarNotes.DataModel.INoteCategory, BrightstarNotes.DataModel.NoteCategory>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.GettingStarted.IActor)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.GettingStarted.IActor, BrightstarDB.Samples.EntityFramework.GettingStarted.Actor>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.GettingStarted.IFilm)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.GettingStarted.IFilm, BrightstarDB.Samples.EntityFramework.GettingStarted.Film>(); }
static EventFeedContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Models.EventFeed.IEvent)); TypeMappings.AddImplMapping<BrightstarDB.Models.EventFeed.IEvent, BrightstarDB.Models.EventFeed.Event>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Models.EventFeed.ISubscriber)); TypeMappings.AddImplMapping<BrightstarDB.Models.EventFeed.ISubscriber, BrightstarDB.Models.EventFeed.Subscriber>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Models.EventFeed.ITopic)); TypeMappings.AddImplMapping<BrightstarDB.Models.EventFeed.ITopic, BrightstarDB.Models.EventFeed.Topic>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.IDepartment)); TypeMappings.AddImplMapping<BrightstarDB.OData.IDepartment, BrightstarDB.OData.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.IPerson)); TypeMappings.AddImplMapping<BrightstarDB.OData.IPerson, BrightstarDB.OData.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.ISkill)); TypeMappings.AddImplMapping<BrightstarDB.OData.ISkill, BrightstarDB.OData.Skill>(); }
static TestContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(NetworkedPlanet.Brightstar.Tests.EntityFramework.IPerson)); TypeMappings.AddImplMapping<NetworkedPlanet.Brightstar.Tests.EntityFramework.IPerson, NetworkedPlanet.Brightstar.Tests.EntityFramework.Person>(); provider.AddMappingsForType(TypeMappings, typeof(IAnimal)); TypeMappings.AddImplMapping<IAnimal, Animal>(); provider.AddMappingsForType(TypeMappings, typeof(ISkill)); TypeMappings.AddImplMapping<ISkill, Skill>(); }
/// <summary> /// Populates a <see cref="EntityMappingStore"/> with the entity mapping and property mapping information /// found on an entity implementation type /// </summary> /// <param name="mappingStore">The <see cref="EntityMappingStore"/> to be updated</param> /// <param name="mappedType">The entity implementation type to be processed</param> public void AddMappingsForType(EntityMappingStore mappingStore, Type mappedType) { var mappedTypeAssembly = mappedType.Assembly; AssemblyMappingInfo assemblyMappings; if (!_assemblyMappings.TryGetValue(mappedTypeAssembly.FullName, out assemblyMappings)) { assemblyMappings = GetAssemblyMappingInfo(mappedTypeAssembly); _assemblyMappings[mappedTypeAssembly.FullName] = assemblyMappings; } AddMappingsForType(mappingStore, assemblyMappings, mappedType); }
static NerdDinnerContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.NerdDinner.Models.IDinner)); TypeMappings.AddImplMapping<BrightstarDB.Samples.NerdDinner.Models.IDinner, BrightstarDB.Samples.NerdDinner.Models.Dinner>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.NerdDinner.Models.INerdDinnerLogin)); TypeMappings.AddImplMapping<BrightstarDB.Samples.NerdDinner.Models.INerdDinnerLogin, BrightstarDB.Samples.NerdDinner.Models.NerdDinnerLogin>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.NerdDinner.Models.IRSVP)); TypeMappings.AddImplMapping<BrightstarDB.Samples.NerdDinner.Models.IRSVP, BrightstarDB.Samples.NerdDinner.Models.RSVP>(); }
/// <summary> /// Initialize a new entity context using the specified Brightstar connection string /// </summary> /// <param name="connectionString">The connection to be used to connect to an existing BrightstarDB store</param> /// <param name="enableOptimisticLocking">OPTIONAL: If set to true optmistic locking will be applied to all entity updates</param> /// <param name="updateGraphUri">OPTIONAL: The URI identifier of the graph to be updated with any new triples created by operations on the store. If /// not defined, the default graph in the store will be updated.</param> /// <param name="datasetGraphUris">OPTIONAL: The URI identifiers of the graphs that will be queried to retrieve entities and their properties. /// If not defined, all graphs in the store will be queried.</param> /// <param name="versionGraphUri">OPTIONAL: The URI identifier of the graph that contains version number statements for entities. /// If not defined, the <paramref name="updateGraphUri"/> will be used.</param> /// <param name="typeMappings">OPTIONAL: A <see cref="EntityMappingStore"/> that overrides the default mappings generated by reflection.</param> public MyEntityContext( string connectionString, bool? enableOptimisticLocking=null, string updateGraphUri = null, IEnumerable<string> datasetGraphUris = null, string versionGraphUri = null, EntityMappingStore typeMappings = null ) : base(typeMappings ?? TypeMappings, connectionString, enableOptimisticLocking, updateGraphUri, datasetGraphUris, versionGraphUri) { InitializeContext(); }
static TestContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(NetworkedPlanet.Brightstar.Tests.EntityFramework.IPerson)); TypeMappings.AddImplMapping <NetworkedPlanet.Brightstar.Tests.EntityFramework.IPerson, NetworkedPlanet.Brightstar.Tests.EntityFramework.Person>(); provider.AddMappingsForType(TypeMappings, typeof(IAnimal)); TypeMappings.AddImplMapping <IAnimal, Animal>(); provider.AddMappingsForType(TypeMappings, typeof(ISkill)); TypeMappings.AddImplMapping <ISkill, Skill>(); }
static NerdDinnerContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.NerdDinner.Models.IDinner)); TypeMappings.AddImplMapping <BrightstarDB.Samples.NerdDinner.Models.IDinner, BrightstarDB.Samples.NerdDinner.Models.Dinner>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.NerdDinner.Models.INerdDinnerLogin)); TypeMappings.AddImplMapping <BrightstarDB.Samples.NerdDinner.Models.INerdDinnerLogin, BrightstarDB.Samples.NerdDinner.Models.NerdDinnerLogin>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.NerdDinner.Models.IRSVP)); TypeMappings.AddImplMapping <BrightstarDB.Samples.NerdDinner.Models.IRSVP, BrightstarDB.Samples.NerdDinner.Models.RSVP>(); }
static EventFeedContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Models.EventFeed.IEvent)); TypeMappings.AddImplMapping <BrightstarDB.Models.EventFeed.IEvent, BrightstarDB.Models.EventFeed.Event>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Models.EventFeed.ISubscriber)); TypeMappings.AddImplMapping <BrightstarDB.Models.EventFeed.ISubscriber, BrightstarDB.Models.EventFeed.Subscriber>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Models.EventFeed.ITopic)); TypeMappings.AddImplMapping <BrightstarDB.Models.EventFeed.ITopic, BrightstarDB.Models.EventFeed.Topic>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.IDepartment)); TypeMappings.AddImplMapping <BrightstarDB.OData.IDepartment, BrightstarDB.OData.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.IPerson)); TypeMappings.AddImplMapping <BrightstarDB.OData.IPerson, BrightstarDB.OData.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.ISkill)); TypeMappings.AddImplMapping <BrightstarDB.OData.ISkill, BrightstarDB.OData.Skill>(); }
/// <summary> /// Processes the specified assembly for entity implementation types and adds all mapping information /// to the specified mapping store /// </summary> /// <param name="mappingStore">The <see cref="EntityMappingStore"/> to be updated</param> /// <param name="assembly">The assembly to be processed</param> public void AddMappingsForAssembly(EntityMappingStore mappingStore, Assembly assembly) { AssemblyMappingInfo assemblyMappings; if (!_assemblyMappings.TryGetValue(assembly.FullName, out assemblyMappings)) { assemblyMappings = GetAssemblyMappingInfo(assembly); _assemblyMappings[assembly.FullName] = assemblyMappings; } foreach (var t in assembly.GetTypes()) { AddMappingsForType(mappingStore, assemblyMappings, t); } }
static TweetBoxContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.TweetBox.IHashTag)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.TweetBox.IHashTag, BrightstarDB.Samples.EntityFramework.TweetBox.HashTag>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.TweetBox.ISocialNetworkAccount)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.TweetBox.ISocialNetworkAccount, BrightstarDB.Samples.EntityFramework.TweetBox.SocialNetworkAccount>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.TweetBox.ITweet)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.TweetBox.ITweet, BrightstarDB.Samples.EntityFramework.TweetBox.Tweet>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.TweetBox.IUser)); TypeMappings.AddImplMapping<BrightstarDB.Samples.EntityFramework.TweetBox.IUser, BrightstarDB.Samples.EntityFramework.TweetBox.User>(); }
static TweetBoxContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.TweetBox.IHashTag)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.TweetBox.IHashTag, BrightstarDB.Samples.EntityFramework.TweetBox.HashTag>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.TweetBox.ISocialNetworkAccount)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.TweetBox.ISocialNetworkAccount, BrightstarDB.Samples.EntityFramework.TweetBox.SocialNetworkAccount>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.TweetBox.ITweet)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.TweetBox.ITweet, BrightstarDB.Samples.EntityFramework.TweetBox.Tweet>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Samples.EntityFramework.TweetBox.IUser)); TypeMappings.AddImplMapping <BrightstarDB.Samples.EntityFramework.TweetBox.IUser, BrightstarDB.Samples.EntityFramework.TweetBox.User>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IAnimal)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IAnimal, BrightstarDB.Tests.EntityFramework.Animal>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IArticle)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IArticle, BrightstarDB.Tests.EntityFramework.Article>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IBaseEntity)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IBaseEntity, BrightstarDB.Tests.EntityFramework.BaseEntity>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ICompany)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.ICompany, BrightstarDB.Tests.EntityFramework.Company>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IConcept)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IConcept, BrightstarDB.Tests.EntityFramework.Concept>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IDBPediaPerson)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IDBPediaPerson, BrightstarDB.Tests.EntityFramework.DBPediaPerson>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IDepartment)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IDepartment, BrightstarDB.Tests.EntityFramework.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IDerivedEntity)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IDerivedEntity, BrightstarDB.Tests.EntityFramework.DerivedEntity>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IEntity)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IEntity, BrightstarDB.Tests.EntityFramework.Entity>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IFoafAgent)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IFoafAgent, BrightstarDB.Tests.EntityFramework.FoafAgent>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IFoafPerson)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IFoafPerson, BrightstarDB.Tests.EntityFramework.FoafPerson>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IIdentityClashTest)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IIdentityClashTest, BrightstarDB.Tests.EntityFramework.IdentityClashTest>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IIdentityClashTestLevel1)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IIdentityClashTestLevel1, BrightstarDB.Tests.EntityFramework.IdentityClashTestLevel1>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IIdentityClashTestLevel2)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IIdentityClashTestLevel2, BrightstarDB.Tests.EntityFramework.IdentityClashTestLevel2>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IJobRole)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IJobRole, BrightstarDB.Tests.EntityFramework.JobRole>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IMarket)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IMarket, BrightstarDB.Tests.EntityFramework.Market>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IPerson)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IPerson, BrightstarDB.Tests.EntityFramework.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ISession)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.ISession, BrightstarDB.Tests.EntityFramework.Session>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IEveningSession)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.IEveningSession, BrightstarDB.Tests.EntityFramework.EveningSession>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ITechnicalEveningSession)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.ITechnicalEveningSession, BrightstarDB.Tests.EntityFramework.TechnicalEveningSession>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ISkill)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.ISkill, BrightstarDB.Tests.EntityFramework.Skill>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ITrackable)); TypeMappings.AddImplMapping<BrightstarDB.Tests.EntityFramework.ITrackable, BrightstarDB.Tests.EntityFramework.Trackable>(); }
static GedComContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IBirthEvent)); TypeMappings.AddImplMapping<BrightstarDB.Gedcom.IBirthEvent, BrightstarDB.Gedcom.BirthEvent>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IDeathEvent)); TypeMappings.AddImplMapping<BrightstarDB.Gedcom.IDeathEvent, BrightstarDB.Gedcom.DeathEvent>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IFamily)); TypeMappings.AddImplMapping<BrightstarDB.Gedcom.IFamily, BrightstarDB.Gedcom.Family>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IIndividual)); TypeMappings.AddImplMapping<BrightstarDB.Gedcom.IIndividual, BrightstarDB.Gedcom.Individual>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IMarriageEvent)); TypeMappings.AddImplMapping<BrightstarDB.Gedcom.IMarriageEvent, BrightstarDB.Gedcom.MarriageEvent>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test7.Models.ICharacter)); TypeMappings.SetImplMapping<BSD_Test7.Models.ICharacter, BSD_Test7.Models.Character>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test7.Models.ICredit)); TypeMappings.SetImplMapping<BSD_Test7.Models.ICredit, BSD_Test7.Models.Credit>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test7.Models.IPerson)); TypeMappings.SetImplMapping<BSD_Test7.Models.IPerson, BSD_Test7.Models.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test7.Models.IProduction)); TypeMappings.SetImplMapping<BSD_Test7.Models.IProduction, BSD_Test7.Models.Production>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test7.Models.IRole)); TypeMappings.SetImplMapping<BSD_Test7.Models.IRole, BSD_Test7.Models.Role>(); }
static AccountsContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.IAccount)); TypeMappings.AddImplMapping<BrightstarDB.Azure.Management.Accounts.IAccount, BrightstarDB.Azure.Management.Accounts.Account>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.IStore)); TypeMappings.AddImplMapping<BrightstarDB.Azure.Management.Accounts.IStore, BrightstarDB.Azure.Management.Accounts.Store>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.IStoreAccess)); TypeMappings.AddImplMapping<BrightstarDB.Azure.Management.Accounts.IStoreAccess, BrightstarDB.Azure.Management.Accounts.StoreAccess>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.ISubscription)); TypeMappings.AddImplMapping<BrightstarDB.Azure.Management.Accounts.ISubscription, BrightstarDB.Azure.Management.Accounts.Subscription>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.IUserToken)); TypeMappings.AddImplMapping<BrightstarDB.Azure.Management.Accounts.IUserToken, BrightstarDB.Azure.Management.Accounts.UserToken>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IAnimal)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IAnimal, BrightstarDB.Tests.EntityFramework.Animal>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IArticle)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IArticle, BrightstarDB.Tests.EntityFramework.Article>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IBaseEntity)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IBaseEntity, BrightstarDB.Tests.EntityFramework.BaseEntity>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ICompany)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.ICompany, BrightstarDB.Tests.EntityFramework.Company>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IDBPediaPerson)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IDBPediaPerson, BrightstarDB.Tests.EntityFramework.DBPediaPerson>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IDepartment)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IDepartment, BrightstarDB.Tests.EntityFramework.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IDerivedEntity)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IDerivedEntity, BrightstarDB.Tests.EntityFramework.DerivedEntity>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IEntity)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IEntity, BrightstarDB.Tests.EntityFramework.Entity>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IFoafAgent)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IFoafAgent, BrightstarDB.Tests.EntityFramework.FoafAgent>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IFoafPerson)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IFoafPerson, BrightstarDB.Tests.EntityFramework.FoafPerson>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IIdentityClashTest)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IIdentityClashTest, BrightstarDB.Tests.EntityFramework.IdentityClashTest>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IIdentityClashTestLevel1)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IIdentityClashTestLevel1, BrightstarDB.Tests.EntityFramework.IdentityClashTestLevel1>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IIdentityClashTestLevel2)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IIdentityClashTestLevel2, BrightstarDB.Tests.EntityFramework.IdentityClashTestLevel2>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IJobRole)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IJobRole, BrightstarDB.Tests.EntityFramework.JobRole>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IMarket)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IMarket, BrightstarDB.Tests.EntityFramework.Market>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IPerson)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IPerson, BrightstarDB.Tests.EntityFramework.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ISession)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.ISession, BrightstarDB.Tests.EntityFramework.Session>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.IEveningSession)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.IEveningSession, BrightstarDB.Tests.EntityFramework.EveningSession>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ITechnicalEveningSession)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.ITechnicalEveningSession, BrightstarDB.Tests.EntityFramework.TechnicalEveningSession>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ISkill)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.ISkill, BrightstarDB.Tests.EntityFramework.Skill>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Tests.EntityFramework.ITrackable)); TypeMappings.AddImplMapping <BrightstarDB.Tests.EntityFramework.ITrackable, BrightstarDB.Tests.EntityFramework.Trackable>(); }
static GedComContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IBirthEvent)); TypeMappings.AddImplMapping <BrightstarDB.Gedcom.IBirthEvent, BrightstarDB.Gedcom.BirthEvent>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IDeathEvent)); TypeMappings.AddImplMapping <BrightstarDB.Gedcom.IDeathEvent, BrightstarDB.Gedcom.DeathEvent>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IFamily)); TypeMappings.AddImplMapping <BrightstarDB.Gedcom.IFamily, BrightstarDB.Gedcom.Family>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IIndividual)); TypeMappings.AddImplMapping <BrightstarDB.Gedcom.IIndividual, BrightstarDB.Gedcom.Individual>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Gedcom.IMarriageEvent)); TypeMappings.AddImplMapping <BrightstarDB.Gedcom.IMarriageEvent, BrightstarDB.Gedcom.MarriageEvent>(); }
static AccountsContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.IAccount)); TypeMappings.AddImplMapping <BrightstarDB.Azure.Management.Accounts.IAccount, BrightstarDB.Azure.Management.Accounts.Account>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.IStore)); TypeMappings.AddImplMapping <BrightstarDB.Azure.Management.Accounts.IStore, BrightstarDB.Azure.Management.Accounts.Store>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.IStoreAccess)); TypeMappings.AddImplMapping <BrightstarDB.Azure.Management.Accounts.IStoreAccess, BrightstarDB.Azure.Management.Accounts.StoreAccess>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.ISubscription)); TypeMappings.AddImplMapping <BrightstarDB.Azure.Management.Accounts.ISubscription, BrightstarDB.Azure.Management.Accounts.Subscription>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Azure.Management.Accounts.IUserToken)); TypeMappings.AddImplMapping <BrightstarDB.Azure.Management.Accounts.IUserToken, BrightstarDB.Azure.Management.Accounts.UserToken>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IArticle)); TypeMappings.SetImplMapping<BrightstarDB.PerformanceTests.Model.IArticle, BrightstarDB.PerformanceTests.Model.Article>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IDepartment)); TypeMappings.SetImplMapping<BrightstarDB.PerformanceTests.Model.IDepartment, BrightstarDB.PerformanceTests.Model.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IJobRole)); TypeMappings.SetImplMapping<BrightstarDB.PerformanceTests.Model.IJobRole, BrightstarDB.PerformanceTests.Model.JobRole>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IPerson)); TypeMappings.SetImplMapping<BrightstarDB.PerformanceTests.Model.IPerson, BrightstarDB.PerformanceTests.Model.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.ISkill)); TypeMappings.SetImplMapping<BrightstarDB.PerformanceTests.Model.ISkill, BrightstarDB.PerformanceTests.Model.Skill>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IWebsite)); TypeMappings.SetImplMapping<BrightstarDB.PerformanceTests.Model.IWebsite, BrightstarDB.PerformanceTests.Model.Website>(); }
public void WriteInFilter(Expression itemExpression, Expression fromExpression) { _filterExpressionBuilder.Append("("); var expr = VisitExpression(itemExpression); if (expr is SelectVariableNameExpression && ((expr) as SelectVariableNameExpression).BindingType == VariableBindingType.Resource) { _castAsResourceType = true; _identifierPrefix = EntityMappingStore.GetIdentifierPrefix(expr.Type); //_identifierPrefix = EntityMappingStore.GetIdentifierPrefix(((SelectVariableNameExpression)expr). } _filterExpressionBuilder.Append(" IN ("); VisitExpression(fromExpression); _filterExpressionBuilder.Append("))"); _castAsResourceType = false; }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IArticle)); TypeMappings.AddImplMapping <BrightstarDB.PerformanceTests.Model.IArticle, BrightstarDB.PerformanceTests.Model.Article>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IDepartment)); TypeMappings.AddImplMapping <BrightstarDB.PerformanceTests.Model.IDepartment, BrightstarDB.PerformanceTests.Model.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IJobRole)); TypeMappings.AddImplMapping <BrightstarDB.PerformanceTests.Model.IJobRole, BrightstarDB.PerformanceTests.Model.JobRole>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IPerson)); TypeMappings.AddImplMapping <BrightstarDB.PerformanceTests.Model.IPerson, BrightstarDB.PerformanceTests.Model.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.ISkill)); TypeMappings.AddImplMapping <BrightstarDB.PerformanceTests.Model.ISkill, BrightstarDB.PerformanceTests.Model.Skill>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.PerformanceTests.Model.IWebsite)); TypeMappings.AddImplMapping <BrightstarDB.PerformanceTests.Model.IWebsite, BrightstarDB.PerformanceTests.Model.Website>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IAnimal)); TypeMappings.AddImplMapping<BrightstarDB.Server.IntegrationTests.Context.IAnimal, BrightstarDB.Server.IntegrationTests.Context.Animal>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IDepartment)); TypeMappings.AddImplMapping<BrightstarDB.Server.IntegrationTests.Context.IDepartment, BrightstarDB.Server.IntegrationTests.Context.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IFoafAgent)); TypeMappings.AddImplMapping<BrightstarDB.Server.IntegrationTests.Context.IFoafAgent, BrightstarDB.Server.IntegrationTests.Context.FoafAgent>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IFoafPerson)); TypeMappings.AddImplMapping<BrightstarDB.Server.IntegrationTests.Context.IFoafPerson, BrightstarDB.Server.IntegrationTests.Context.FoafPerson>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IJobRole)); TypeMappings.AddImplMapping<BrightstarDB.Server.IntegrationTests.Context.IJobRole, BrightstarDB.Server.IntegrationTests.Context.JobRole>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IPerson)); TypeMappings.AddImplMapping<BrightstarDB.Server.IntegrationTests.Context.IPerson, BrightstarDB.Server.IntegrationTests.Context.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.ISkill)); TypeMappings.AddImplMapping<BrightstarDB.Server.IntegrationTests.Context.ISkill, BrightstarDB.Server.IntegrationTests.Context.Skill>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test4.Models.IEvent)); TypeMappings.SetImplMapping<BSD_Test4.Models.IEvent, BSD_Test4.Models.Event>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test4.Models.IPerformance)); TypeMappings.SetImplMapping<BSD_Test4.Models.IPerformance, BSD_Test4.Models.Performance>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test4.Models.IPhoto)); TypeMappings.SetImplMapping<BSD_Test4.Models.IPhoto, BSD_Test4.Models.Photo>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test4.Models.IPerson)); TypeMappings.SetImplMapping<BSD_Test4.Models.IPerson, BSD_Test4.Models.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test4.Models.IProduction)); TypeMappings.SetImplMapping<BSD_Test4.Models.IProduction, BSD_Test4.Models.Production>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test4.Models.IProductionMember)); TypeMappings.SetImplMapping<BSD_Test4.Models.IProductionMember, BSD_Test4.Models.ProductionMember>(); provider.AddMappingsForType(TypeMappings, typeof(BSD_Test4.Models.IRole)); TypeMappings.SetImplMapping<BSD_Test4.Models.IRole, BSD_Test4.Models.Role>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IAnimal)); TypeMappings.AddImplMapping <BrightstarDB.Server.IntegrationTests.Context.IAnimal, BrightstarDB.Server.IntegrationTests.Context.Animal>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IDepartment)); TypeMappings.AddImplMapping <BrightstarDB.Server.IntegrationTests.Context.IDepartment, BrightstarDB.Server.IntegrationTests.Context.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IFoafAgent)); TypeMappings.AddImplMapping <BrightstarDB.Server.IntegrationTests.Context.IFoafAgent, BrightstarDB.Server.IntegrationTests.Context.FoafAgent>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IFoafPerson)); TypeMappings.AddImplMapping <BrightstarDB.Server.IntegrationTests.Context.IFoafPerson, BrightstarDB.Server.IntegrationTests.Context.FoafPerson>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IJobRole)); TypeMappings.AddImplMapping <BrightstarDB.Server.IntegrationTests.Context.IJobRole, BrightstarDB.Server.IntegrationTests.Context.JobRole>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.IPerson)); TypeMappings.AddImplMapping <BrightstarDB.Server.IntegrationTests.Context.IPerson, BrightstarDB.Server.IntegrationTests.Context.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.Server.IntegrationTests.Context.ISkill)); TypeMappings.AddImplMapping <BrightstarDB.Server.IntegrationTests.Context.ISkill, BrightstarDB.Server.IntegrationTests.Context.Skill>(); }
/// <summary> /// Processes a <see cref="EntityContext"/> instance to extract mapping details and uses them to populate /// a <see cref="EntityMappingStore"/> /// </summary> /// <param name="mappingStore">The <see cref="EntityMappingStore"/> to be populated</param> /// <param name="context">The <see cref="EntityContext"/> to be processed</param> public void AddMappingsForContext(EntityMappingStore mappingStore, EntityContext context) { var contextType = context.GetType(); var contextAssembly = contextType.Assembly; AssemblyMappingInfo assemblyMappings; if (!_assemblyMappings.TryGetValue(contextAssembly.FullName, out assemblyMappings)) { assemblyMappings = GetAssemblyMappingInfo(contextAssembly); _assemblyMappings[contextAssembly.FullName] = assemblyMappings; } var queryableGeneric = typeof (IQueryable<object>).GetGenericTypeDefinition(); foreach(var p in contextType.GetProperties()) { if (p.PropertyType.IsGenericType && queryableGeneric.IsAssignableFrom(p.PropertyType.GetGenericTypeDefinition())) { var genericParam = p.PropertyType.GetGenericArguments()[0]; AddMappingsForType(mappingStore, genericParam); } } }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IArticle)); TypeMappings.SetImplMapping<BrightstarDB.OData.Tests.IArticle, BrightstarDB.OData.Tests.Article>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.ICompany)); TypeMappings.SetImplMapping<BrightstarDB.OData.Tests.ICompany, BrightstarDB.OData.Tests.Company>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IDataTypeTestEntity)); TypeMappings.SetImplMapping<BrightstarDB.OData.Tests.IDataTypeTestEntity, BrightstarDB.OData.Tests.DataTypeTestEntity>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IDepartment)); TypeMappings.SetImplMapping<BrightstarDB.OData.Tests.IDepartment, BrightstarDB.OData.Tests.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IJobRole)); TypeMappings.SetImplMapping<BrightstarDB.OData.Tests.IJobRole, BrightstarDB.OData.Tests.JobRole>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IPerson)); TypeMappings.SetImplMapping<BrightstarDB.OData.Tests.IPerson, BrightstarDB.OData.Tests.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IProject)); TypeMappings.SetImplMapping<BrightstarDB.OData.Tests.IProject, BrightstarDB.OData.Tests.Project>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.ISkill)); TypeMappings.SetImplMapping<BrightstarDB.OData.Tests.ISkill, BrightstarDB.OData.Tests.Skill>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IArticle)); TypeMappings.AddImplMapping <BrightstarDB.OData.Tests.IArticle, BrightstarDB.OData.Tests.Article>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.ICompany)); TypeMappings.AddImplMapping <BrightstarDB.OData.Tests.ICompany, BrightstarDB.OData.Tests.Company>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IDataTypeTestEntity)); TypeMappings.AddImplMapping <BrightstarDB.OData.Tests.IDataTypeTestEntity, BrightstarDB.OData.Tests.DataTypeTestEntity>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IDepartment)); TypeMappings.AddImplMapping <BrightstarDB.OData.Tests.IDepartment, BrightstarDB.OData.Tests.Department>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IJobRole)); TypeMappings.AddImplMapping <BrightstarDB.OData.Tests.IJobRole, BrightstarDB.OData.Tests.JobRole>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IPerson)); TypeMappings.AddImplMapping <BrightstarDB.OData.Tests.IPerson, BrightstarDB.OData.Tests.Person>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.IProject)); TypeMappings.AddImplMapping <BrightstarDB.OData.Tests.IProject, BrightstarDB.OData.Tests.Project>(); provider.AddMappingsForType(TypeMappings, typeof(BrightstarDB.OData.Tests.ISkill)); TypeMappings.AddImplMapping <BrightstarDB.OData.Tests.ISkill, BrightstarDB.OData.Tests.Skill>(); }
static MyEntityContext() { TypeMappings = new EntityMappingStore(); var provider = new ReflectionMappingProvider(); }
/// <summary> /// Initialize a new entity context using the specified BrightstarDB /// Data Object Store connection /// </summary> /// <param name="dataObjectStore">The connection to the BrightstarDB Data Object Store that will provide the entity objects</param> /// <param name="typeMappings">OPTIONAL: A <see cref="EntityMappingStore"/> that overrides the default mappings generated by reflection.</param> public MyEntityContext(IDataObjectStore dataObjectStore, EntityMappingStore typeMappings = null) : base(typeMappings ?? TypeMappings, dataObjectStore) { InitializeContext(); }
/// <summary> /// Convert a "Compare" expression into a SPARQL greater than / less than /// </summary> /// <param name="compareExpression"></param> /// <param name="nodeType"></param> /// <remarks>The Compare expression is used by Microsoft WCF Data Services when a OData call is made with a $skiptoken query option. This token is used to find the starting point in a collection of entities</remarks> private void HandleCompareExpression(MethodCallExpression compareExpression, ExpressionType nodeType) { var filter = nodeType == ExpressionType.GreaterThan ? "(?{0} > '{1}')" : "(?{0} < '{1}')"; var expression = compareExpression.Arguments[0] as MemberExpression; var sourceVarName = GetSourceVarName(expression); var constantExpression = compareExpression.Arguments[1] as ConstantExpression; var value = constantExpression.Value.ToString(); if (sourceVarName != null) { #if PORTABLE if (expression.Member is PropertyInfo) #else if (expression.Member.MemberType == MemberTypes.Property) #endif { var propertyInfo = expression.Member as PropertyInfo; var hint = QueryBuilder.Context.GetPropertyHint(propertyInfo); if (hint != null) { switch (hint.MappingType) { case PropertyMappingType.Id: filter = nodeType == ExpressionType.GreaterThan ? "(str(?{0}) > '{1}')" : "(str(?{0}) < '{1}')"; var prefix = EntityMappingStore.GetIdentifierPrefix(propertyInfo.DeclaringType); _filterWriter.AppendFormat(filter, sourceVarName, prefix + value); break; case PropertyMappingType.Arc: case PropertyMappingType.Property: { var existingVarName = QueryBuilder.GetVariableForObject(GraphNode.Variable, sourceVarName, GraphNode.Iri, hint.SchemaTypeUri); if (!String.IsNullOrEmpty(existingVarName)) { _filterWriter.AppendFormat(filter, existingVarName, value); } else { var varName = QueryBuilder.NextVariable(); QueryBuilder.AddTripleConstraint( GraphNode.Variable, sourceVarName, GraphNode.Iri, hint.SchemaTypeUri, GraphNode.Variable, varName); _filterWriter.AppendFormat(filter, varName, value); } break; } case PropertyMappingType.InverseArc: { var existingVarName = QueryBuilder.GetVariableForSubject(GraphNode.Iri, hint.SchemaTypeUri, GraphNode.Variable, sourceVarName); if (!String.IsNullOrEmpty(existingVarName)) { _filterWriter.AppendFormat(filter, existingVarName, value); } else { var varName = QueryBuilder.NextVariable(); QueryBuilder.AddTripleConstraint(GraphNode.Variable, varName, GraphNode.Iri, hint.SchemaTypeUri, GraphNode.Variable, sourceVarName); _filterWriter.AppendFormat(filter, varName, value); } } break; case PropertyMappingType.Address: _filterWriter.AppendFormat(filter, sourceVarName, value); break; } } } } }
private static void AddMappingsForType(EntityMappingStore mappingStore, AssemblyMappingInfo assemblyMappingInfo, Type mappedType) { var entityAttribute = mappedType.GetCustomAttributes(typeof (EntityAttribute), false).OfType<EntityAttribute>(). FirstOrDefault(); if (entityAttribute != null) { var entityTypeIdentifier = entityAttribute.Identifier ?? GetImplTypeName(mappedType); mappingStore.SetTypeMapping(mappedType, assemblyMappingInfo.ResolveIdentifier(entityTypeIdentifier)); var identityProperty = GetIdentityProperty(mappedType); if (identityProperty != null) { var identifierAttr = identityProperty.GetCustomAttributes(typeof (IdentifierAttribute), true).Cast <IdentifierAttribute>().FirstOrDefault(); var identityInfo = GetIdentityInfo(assemblyMappingInfo, mappedType, identityProperty, identifierAttr); mappingStore.SetIdentityInfo(mappedType, identityInfo); mappingStore.SetPropertyHint(identityProperty, new PropertyHint(PropertyMappingType.Id)); } foreach (var p in mappedType.GetProperties()) { if (p.Equals(identityProperty)) { // Identity property is already mapped (above) continue; } foreach (var attr in p.GetCustomAttributes(false)) { /* if (attr is IdentifierAttribute) { mappingStore.SetPropertyHint(p, new PropertyHint(PropertyMappingType.Address)); var idAttr = attr as IdentifierAttribute; if (idAttr.BaseAddress != null) { mappingStore.SetIdentifierPrefix(mappedType, assemblyMappingInfo.ResolveIdentifier(idAttr.BaseAddress)); } } else*/ if (attr is PropertyTypeAttribute) { var propertyUri = assemblyMappingInfo.ResolveIdentifier((attr as PropertyTypeAttribute).Identifier); mappingStore.SetPropertyHint(p, IsResource(p.PropertyType) ? new PropertyHint(PropertyMappingType.Arc, propertyUri) : new PropertyHint(PropertyMappingType.Property, propertyUri)); } else if (attr is InversePropertyTypeAttribute) { var propertyUri = assemblyMappingInfo.ResolveIdentifier((attr as InversePropertyTypeAttribute).Identifier); var targetType = p.PropertyType; if (targetType.IsGenericType) { targetType = targetType.GetGenericArguments().First(); } if (targetType.GetCustomAttributes(typeof(EntityAttribute), false).Any()) { mappingStore.SetPropertyHint(p, new PropertyHint(PropertyMappingType.InverseArc, propertyUri)); } else { throw new ReflectionMappingException( String.Format( "The property '{0}' on type '{1}' is marked with the InverseProperty attribute but its referenced type ('{2}') is not marked with a Entity attribute.", p.Name, mappedType.FullName, p.PropertyType.FullName)); } } else if (attr is InversePropertyAttribute) { var inversePropertyAttr = attr as InversePropertyAttribute; var targetType = p.PropertyType; if (targetType.IsGenericType) targetType = targetType.GetGenericArguments().First(); if (!targetType.GetCustomAttributes(typeof(EntityAttribute), true).Any()) { throw new ReflectionMappingException( String.Format( "The type of property '{0}' on interface '{1}' is not marked with an Entity attribute.", p.Name, mappedType.FullName)); } var forwardProperty = targetType.GetProperty(inversePropertyAttr.InversePropertyName); if (forwardProperty == null) { throw new ReflectionMappingException(String.Format("The property '{0}' does not exist on type '{1}'.", inversePropertyAttr.InversePropertyName, targetType.FullName)); } var inversePropertyTypeUri = assemblyMappingInfo.ResolveIdentifier(GetForwardPropertyTypeUri(forwardProperty, p)); mappingStore.SetPropertyHint(p, new PropertyHint(PropertyMappingType.InverseArc, inversePropertyTypeUri)); } } if (mappingStore.GetPropertyHint(p) == null) { // If there has been no mapping at all, then we create a property mapping var propertyName = Char.ToLowerInvariant(p.Name[0]) + p.Name.Substring(1); var propertyUri = assemblyMappingInfo.ResolveIdentifier(propertyName); mappingStore.SetPropertyHint(p, IsResource(p.PropertyType) ? new PropertyHint(PropertyMappingType.Arc, propertyUri) : new PropertyHint(PropertyMappingType.Property, propertyUri)); } } } }
/// <summary> /// Initialize a new entity context using the specified Brightstar /// connection string retrieved from the configuration and the // specified target graphs /// </summary> /// <param name="updateGraphUri">The URI identifier of the graph to be updated with any new triples created by operations on the store. If /// set to null, the default graph in the store will be updated.</param> /// <param name="datasetGraphUris">The URI identifiers of the graphs that will be queried to retrieve entities and their properties. /// If set to null, all graphs in the store will be queried.</param> /// <param name="versionGraphUri">The URI identifier of the graph that contains version number statements for entities. /// If set to null, the value of <paramref name="updateGraphUri"/> will be used.</param> /// <param name="typeMappings">OPTIONAL: A <see cref="EntityMappingStore"/> that overrides the default mappings generated by reflection.</param> public MyEntityContext( string updateGraphUri, IEnumerable<string> datasetGraphUris, string versionGraphUri, EntityMappingStore typeMappings = null ) : base(typeMappings ?? TypeMappings, updateGraphUri:updateGraphUri, datasetGraphUris:datasetGraphUris, versionGraphUri:versionGraphUri) { InitializeContext(); }
protected override Expression VisitConstantExpression(ConstantExpression expression) { // Determine the effective expression type (removing Nullable<T> wrapper) var expressionType = expression.Type; if (expression.Type.IsGenericType && expression.Type.GetGenericTypeDefinition().Equals(typeof(System.Nullable <>))) { expressionType = expression.Type.GetGenericArguments()[0]; } if (typeof(String).IsAssignableFrom(expressionType)) { _filterExpressionBuilder.Append(MakeSparqlStringConstant(_regexEscaping ? Regex.Escape(expression.Value as String) : expression.Value as string)); var dt = GetDatatype(typeof(string)); if (!String.IsNullOrEmpty(dt)) { _filterExpressionBuilder.AppendFormat("^^<{0}>", dt); } return(expression); } if (NumericTypes.Contains(expressionType)) { _filterExpressionBuilder.Append(MakeSparqlStringConstant(MakeSparqlNumericConstant(expression.Value))); var dt = GetDatatype(expressionType); if (!String.IsNullOrEmpty(dt)) { _filterExpressionBuilder.AppendFormat("^^<{0}>", dt); } return(expression); } if (expressionType.Equals(typeof(bool))) { _filterExpressionBuilder.Append(((bool)expression.Value) ? "true" : "false"); /*var dt = GetDatatype(typeof (bool)); * if (!String.IsNullOrEmpty(dt)) * { * _filterExpressionBuilder.AppendFormat("^^<{0}>", dt); * } */ return(expression); } if (expressionType.Equals(typeof(DateTime))) { _filterExpressionBuilder.Append(MakeSparqlStringConstant(((DateTime)expression.Value).ToString("O"))); var dt = GetDatatype(typeof(DateTime)); if (!String.IsNullOrEmpty(dt)) { _filterExpressionBuilder.AppendFormat("^^<{0}>", dt); } return(expression); } if (expressionType == typeof(PlainLiteral)) { var pl = expression.Value as PlainLiteral; _filterExpressionBuilder.Append(MakeSparqlStringConstant(pl.Value)); if (!pl.Language.Equals(String.Empty)) { _filterExpressionBuilder.AppendFormat("@{0}", pl.Language); } return(expression); } if (typeof(IEnumerable).IsAssignableFrom(expression.Type)) { var enumerable = expression.Value as IEnumerable; bool isFirst = true; foreach (var o in enumerable) { if (o != null) { if (!isFirst) { _filterExpressionBuilder.Append(","); } else { isFirst = false; } _filterExpressionBuilder.Append(MakeSparqlConstant(o)); var dt = GetDatatype(typeof(string)); if (!String.IsNullOrEmpty(dt)) { _filterExpressionBuilder.AppendFormat("^^<{0}>", dt); } } } return(expression); } if (typeof(IEntityObject).IsAssignableFrom(expression.Type) || EntityMappingStore.IsKnownInterface(expression.Type)) { var obj = expression.Value as IEntityObject; var address = QueryBuilder.Context.GetResourceAddress(obj); _filterExpressionBuilder.AppendFormat("<{0}>", address); return(expression); } return(base.VisitConstantExpression(expression)); }
public string MakeSparqlConstant(object value, bool regexEscaping) { if (value == null) { throw new ArgumentNullException("value"); } // Determine the effective expression type (removing Nullable<T> wrapper) var expressionType = value.GetType(); if (expressionType.IsGenericType && expressionType.GetGenericTypeDefinition() == typeof(Nullable <>)) { expressionType = expressionType.GetGenericArguments()[0]; } if (typeof(string).IsAssignableFrom(expressionType)) { var strValue = value as string; if (strValue != null) { var dt = Context.GetDatatype(typeof(string)); var ret = MakeSparqlStringConstant(regexEscaping ? Regex.Escape(strValue) : strValue); if (!string.IsNullOrEmpty(dt)) { ret += string.Format("^^<{0}>", dt); } return(ret); } } if (NumericTypes.Contains(expressionType)) { var ret = MakeSparqlStringConstant(MakeSparqlNumericConstant(value)); var dt = Context.GetDatatype(expressionType); if (!string.IsNullOrEmpty(dt)) { ret += string.Format("^^<{0}>", dt); } return(ret); } if (expressionType == typeof(bool)) { return(((bool)value) ? "true" : "false"); } if (expressionType == typeof(DateTime)) { var ret = MakeSparqlStringConstant(((DateTime)value).ToString("O")); var dt = Context.GetDatatype(typeof(DateTime)); if (!String.IsNullOrEmpty(dt)) { ret += String.Format("^^<{0}>", dt); } return(ret); } if (expressionType == typeof(Guid)) { var ret = MakeSparqlStringConstant(((Guid)value).ToString("D")); var dt = Context.GetDatatype(typeof(Guid)); if (!string.IsNullOrEmpty(dt)) { ret += String.Format("^^<{0}>", dt); } return(ret); } if (expressionType == typeof(PlainLiteral)) { var pl = value as PlainLiteral; var ret = MakeSparqlStringConstant(pl.Value); if (!pl.Language.Equals(string.Empty)) { ret += String.Format("@{0}", pl.Language); } return(ret); } if (typeof(IEnumerable).IsAssignableFrom(expressionType)) { var ret = new StringBuilder(); var enumerable = value as IEnumerable; var isFirst = true; foreach (var o in enumerable) { if (o != null) { if (!isFirst) { ret.Append(","); } else { isFirst = false; } ret.Append(MakeSparqlConstant(o, regexEscaping)); //var dt = GetDatatype(typeof (string)); //if (!string.IsNullOrEmpty(dt)) //{ // ret.AppendFormat("^^<{0}>", dt); //} } } return(ret.ToString()); } if (typeof(IEntityObject).IsAssignableFrom(expressionType) || EntityMappingStore.IsKnownInterface(expressionType)) { var obj = value as IEntityObject; var address = Context.GetResourceAddress(obj); return(string.Format("<{0}>", address)); } throw new ArgumentException(string.Format("Unable to serialize value {0} ({1}) as a SPARQL constant", value, value.GetType())); }
protected override Expression VisitMemberExpression(MemberExpression expression) { string sourceVarName = null; if (expression.Expression is QuerySourceReferenceExpression) { var source = expression.Expression as QuerySourceReferenceExpression; Expression mappedSourceExpression; sourceVarName = source.ReferencedQuerySource.ItemName; if (_queryBuilder.TryGetQuerySourceMapping(source.ReferencedQuerySource, out mappedSourceExpression) && mappedSourceExpression is SelectVariableNameExpression) { sourceVarName = (mappedSourceExpression as SelectVariableNameExpression).Name; } } else if (expression.Expression is MemberExpression) { var memberExpression = VisitExpression(expression.Expression); if (memberExpression is SelectVariableNameExpression) { sourceVarName = (memberExpression as SelectVariableNameExpression).Name; } } else if (expression.Expression is UnaryExpression) { var unary = expression.Expression as UnaryExpression; if (unary.NodeType == ExpressionType.TypeAs && unary.Operand is QuerySourceReferenceExpression) { var targetType = unary.Type; var source = unary.Operand as QuerySourceReferenceExpression; if (source != null) { var itemType = source.ReferencedQuerySource.ItemType; if (targetType.IsAssignableFrom(itemType)) { expression = Expression.MakeMemberAccess(unary.Operand, expression.Member); return(VisitExpression(expression)); } } } var updatedExpression = VisitExpression(expression.Expression) as UnaryExpression; if (updatedExpression != null && updatedExpression.Operand is SelectVariableNameExpression) { #if WINDOWS_PHONE || PORTABLE return(Expression.MakeMemberAccess(updatedExpression, expression.Member)); #else return(expression.Update(updatedExpression)); #endif } } if (!String.IsNullOrEmpty(sourceVarName)) { #if PORTABLE if (expression.Member is PropertyInfo) #else if (expression.Member.MemberType == MemberTypes.Property) #endif { var propertyInfo = expression.Member as PropertyInfo; var propertyHint = _queryBuilder.Context.GetPropertyHint(propertyInfo); if (propertyHint != null) { switch (propertyHint.MappingType) { case PropertyMappingType.Arc: { var memberVarName = _queryBuilder.GetVariableForObject( GraphNode.Variable, sourceVarName, GraphNode.Iri, propertyHint.SchemaTypeUri); if (memberVarName == null) { memberVarName = _queryBuilder.NextVariable(); _queryBuilder.AddTripleConstraint( GraphNode.Variable, sourceVarName, GraphNode.Iri, propertyHint.SchemaTypeUri, GraphNode.Variable, memberVarName); } return(new SelectVariableNameExpression(memberVarName, VariableBindingType.Resource, propertyInfo.PropertyType)); } case PropertyMappingType.InverseArc: { var memberVarName = _queryBuilder.GetVariableForSubject( GraphNode.Iri, propertyHint.SchemaTypeUri, GraphNode.Variable, sourceVarName); if (memberVarName == null) { memberVarName = _queryBuilder.NextVariable(); _queryBuilder.AddTripleConstraint( GraphNode.Variable, memberVarName, GraphNode.Iri, propertyHint.SchemaTypeUri, GraphNode.Variable, sourceVarName); } return(new SelectVariableNameExpression(memberVarName, VariableBindingType.Resource, propertyInfo.PropertyType)); } case PropertyMappingType.Property: { var propertyValueVarName = _queryBuilder.GetVariableForObject(GraphNode.Variable, sourceVarName, GraphNode.Iri, propertyHint. SchemaTypeUri); if (propertyValueVarName == null) { propertyValueVarName = _queryBuilder.NextVariable(); _queryBuilder.AddTripleConstraint( GraphNode.Variable, sourceVarName, GraphNode.Iri, propertyHint.SchemaTypeUri, GraphNode.Variable, propertyValueVarName); } return(new SelectVariableNameExpression(propertyValueVarName, VariableBindingType.Literal, propertyInfo.PropertyType)); } case PropertyMappingType.Address: { return(new SelectVariableNameExpression(sourceVarName, VariableBindingType.Resource, propertyInfo.PropertyType)); } case PropertyMappingType.Id: { var prefix = EntityMappingStore.GetIdentifierPrefix(propertyInfo.DeclaringType); return(new SelectIdentifierVariableNameExpression(sourceVarName, prefix)); //return new SelectVariableNameExpression(sourceVarName, VariableBindingType.Resource, propertyInfo.PropertyType); } } } } } return(base.VisitMemberExpression(expression)); }
/// <summary> /// Initialize a new entity context using the specified Brightstar /// connection string retrieved from the configuration. /// </summary> /// <param name="typeMappings">OPTIONAL: A <see cref="EntityMappingStore"/> that overrides the default mappings generated by reflection.</param> public MyEntityContext(EntityMappingStore typeMappings = null) : base(typeMappings ?? TypeMappings) { InitializeContext(); }
protected override Expression VisitMethodCallExpression(MethodCallExpression expression) { if (expression.Method.Name.Equals("Equals")) { if (EntityMappingStore.IsKnownInterface(expression.Object.Type)) { // Query is testing equality on a property that maps to an entity type if (expression.Arguments[0].NodeType == ExpressionType.Constant) { _filterExpressionBuilder.Append("sameterm("); VisitExpression(expression.Object); _filterExpressionBuilder.Append(","); VisitExpression(expression.Arguments[0]); _filterExpressionBuilder.Append(")"); return(expression); } } if (expression.Object.NodeType == ExpressionType.MemberAccess) { var ma = expression.Object as MemberExpression; if (ma.Member is PropertyInfo) { var targetProperty = ma.Member as PropertyInfo; var propertyHint = QueryBuilder.Context.GetPropertyHint(targetProperty); if (propertyHint != null && propertyHint.MappingType == PropertyMappingType.Id) { if (expression.Arguments[0].NodeType == ExpressionType.Constant) { var constant = expression.Arguments[0] as ConstantExpression; _filterExpressionBuilder.Append("sameterm("); VisitExpression(expression.Object); _filterExpressionBuilder.Append(","); _filterExpressionBuilder.AppendFormat( "<{0}>", QueryBuilder.Context.MapIdToUri(targetProperty, constant.Value.ToString())); _filterExpressionBuilder.Append(")"); return(expression); } throw new NotSupportedException("Entity ID properties can only be compared to constant values"); } // Otherwise fall through to default handling } } _filterExpressionBuilder.Append('('); VisitExpression(expression.Object); _filterExpressionBuilder.Append("="); VisitExpression(expression.Arguments[0]); _filterExpressionBuilder.Append(')'); return(expression); } if (expression.Object != null && expression.Object.Type == typeof(String)) { if (expression.Method.Name.Equals("StartsWith")) { if (expression.Arguments[0].NodeType == ExpressionType.Constant) { var constantExpression = expression.Arguments[0] as ConstantExpression; if (expression.Arguments.Count == 1) { WriteFunction("STRSTARTS", expression.Object, expression.Arguments[0]); } else { var flags = SparqlGeneratorWhereExpressionTreeVisitor.GetStringComparisonFlags(expression.Arguments[1]); WriteRegexFilter(expression.Object, "^" + Regex.Escape(constantExpression.Value.ToString()), flags); return(expression); } return(expression); } } if (expression.Method.Name.Equals("EndsWith")) { if (expression.Arguments[0].NodeType == ExpressionType.Constant) { var constantExpression = expression.Arguments[0] as ConstantExpression; if (expression.Arguments.Count == 1) { WriteFunction("STRENDS", expression.Object, expression.Arguments[0]); } if (expression.Arguments.Count > 1 && expression.Arguments[1] is ConstantExpression) { string flags = SparqlGeneratorWhereExpressionTreeVisitor.GetStringComparisonFlags(expression.Arguments[1]); WriteRegexFilter(expression.Object, Regex.Escape(constantExpression.Value.ToString()) + "$", flags); } return(expression); } } if (expression.Method.Name.Equals("Contains")) { var seekValue = expression.Arguments[0] as ConstantExpression; if (seekValue != null) { if (expression.Arguments.Count == 1) { WriteFunction("CONTAINS", expression.Object, seekValue); } else if (expression.Arguments[1] is ConstantExpression) { var flags = SparqlGeneratorWhereExpressionTreeVisitor.GetStringComparisonFlags(expression.Arguments[1]); WriteRegexFilter(expression.Object, Regex.Escape(seekValue.Value.ToString()), flags); } return(expression); } } if (expression.Method.Name.Equals("Substring")) { Expression start; if (expression.Arguments[0] is ConstantExpression && expression.Arguments[0].Type == typeof(int)) { start = Expression.Constant(((int)(expression.Arguments[0] as ConstantExpression).Value) + 1); } else { start = Expression.Add(expression.Arguments[0], Expression.Constant(1)); } if (expression.Arguments.Count == 1) { WriteFunction("SUBSTR", expression.Object, start); return(expression); } if (expression.Arguments.Count == 2) { WriteFunction("SUBSTR", expression.Object, start, expression.Arguments[1]); return(expression); } } if (expression.Method.Name.Equals("ToUpper")) { WriteFunction("UCASE", expression.Object); return(expression); } if (expression.Method.Name.Equals("ToLower")) { WriteFunction("LCASE", expression.Object); return(expression); } if (expression.Method.Name.Equals("Replace")) { _regexEscaping = true; WriteFunction("REPLACE", expression.Object, expression.Arguments[0], expression.Arguments[1]); _regexEscaping = false; return(expression); } } if (expression.Object == null) { // Static method if (expression.Method.DeclaringType.Equals(typeof(Regex))) { if (expression.Method.Name.Equals("IsMatch")) { var sourceExpression = expression.Arguments[0]; var regexExpression = expression.Arguments[1] as ConstantExpression; var flagsExpression = expression.Arguments.Count > 2 ? expression.Arguments[2] as ConstantExpression : null; if (regexExpression != null) { var regex = regexExpression.Value.ToString(); string flags = String.Empty; if (flagsExpression != null && flagsExpression.Type == typeof(RegexOptions)) { var regexOptions = (RegexOptions)flagsExpression.Value; if ((regexOptions & RegexOptions.IgnoreCase) == RegexOptions.IgnoreCase) { flags += "i"; } if ((regexOptions & RegexOptions.Multiline) == RegexOptions.Multiline) { flags += "m"; } if ((regexOptions & RegexOptions.Singleline) == RegexOptions.Singleline) { flags += "s"; } if ((regexOptions & RegexOptions.IgnorePatternWhitespace) == RegexOptions.IgnorePatternWhitespace) { flags += "x"; } } WriteRegexFilter(sourceExpression, regex, String.Empty.Equals(flags) ? null : flags); return(expression); } } } if (typeof(String).Equals(expression.Method.DeclaringType)) { if (expression.Method.Name.Equals("Concat")) { WriteFunction("CONCAT", expression.Arguments.ToArray()); return(expression); } } if (typeof(Math).Equals(expression.Method.DeclaringType)) { string fnName = null; switch (expression.Method.Name) { case "Round": fnName = "ROUND"; break; case "Floor": fnName = "FLOOR"; break; case "Ceiling": fnName = "CEIL"; break; } if (fnName != null) { WriteFunction(fnName, expression.Arguments[0]); return(expression); } } } return(base.VisitMethodCallExpression(expression)); }