コード例 #1
0
 protected void InitializeContext()
 {
     var contextMappings = new EntityMappingStore();
     var rmp = new ReflectionMappingProvider();
     rmp.AddMappingsForAssembly(contextMappings, typeof(LinqToSparqlTests).Assembly);
     Context = new MockContext(contextMappings);
 }
コード例 #2
0
ファイル: FoafContext.cs プロジェクト: Garwin4j/BrightstarDB
 	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>();
 	}
コード例 #3
0
 	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>();
 	}
コード例 #4
0
 static MyEntityContext()
 {
     TypeMappings = new EntityMappingStore();
     var provider = new ReflectionMappingProvider();
     provider.AddMappingsForType(TypeMappings, typeof(EmailVisualiser.Data.IPersistentEmail));
     TypeMappings.AddImplMapping<EmailVisualiser.Data.IPersistentEmail, EmailVisualiser.Data.PersistentEmail>();
 }
コード例 #5
0
        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>();
        }
コード例 #6
0
        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>();
        }
コード例 #7
0
        protected void InitializeContext()
        {
            var contextMappings = new EntityMappingStore();
            var rmp             = new ReflectionMappingProvider();

            rmp.AddMappingsForAssembly(contextMappings, typeof(LinqToSparqlTests).Assembly);
            Context = new MockContext(contextMappings);
        }
コード例 #8
0
ファイル: MockContext.cs プロジェクト: illinar/BrightstarDB
 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>();
 }
コード例 #9
0
ファイル: NotesContext.cs プロジェクト: Garwin4j/BrightstarDB
 	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>();
 	}
コード例 #10
0
 	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>();
 	}
コード例 #11
0
ファイル: NotesContext.cs プロジェクト: Garwin4j/BrightstarDB
 	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>();
 	}
コード例 #12
0
 	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>();
 	}
コード例 #13
0
        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>();
        }
コード例 #14
0
        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>();
        }
コード例 #15
0
        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>();
        }
コード例 #16
0
        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>();
        }
コード例 #17
0
 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>();
 }
コード例 #18
0
 	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>();
 	}
コード例 #19
0
ファイル: TestContext.cs プロジェクト: GTuritto/BrightstarDB
 	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>();
 	}
コード例 #20
0
 /// <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);
 }
コード例 #21
0
 	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>();
 	}
コード例 #22
0
 	/// <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();
 	}
コード例 #23
0
        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>();
        }
コード例 #24
0
        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>();
        }
コード例 #25
0
        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>();
        }
コード例 #26
0
        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>();
        }
コード例 #27
0
 /// <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);
     }
 }
コード例 #28
0
 	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>();
 	}
コード例 #29
0
        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>();
        }
コード例 #30
0
 	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>();
 	}
コード例 #31
0
ファイル: GedComContext.cs プロジェクト: hogwell/Gedcom
 	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>();
 	}
コード例 #32
0
ファイル: MyEntityContext.cs プロジェクト: nz-dig/BSD_Test7
 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>();
 }
コード例 #33
0
 	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>();
 	}
コード例 #34
0
        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>();
        }
コード例 #35
0
ファイル: GedComContext.cs プロジェクト: stevelinz/Gedcom
        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>();
        }
コード例 #36
0
        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>();
        }
コード例 #37
0
 	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>();
 	}
コード例 #38
0
        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;
        }
コード例 #39
0
        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>();
        }
コード例 #40
0
 	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>();
 	}
コード例 #41
0
ファイル: MyEntityContext.cs プロジェクト: nz-dig/BSD_Test4
 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>();
 }
コード例 #42
0
        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>();
        }
コード例 #43
0
 /// <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);
         }
     }
 }
コード例 #44
0
 	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>();
 	}
コード例 #45
0
        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>();
        }
コード例 #46
0
 static MyEntityContext()
 {
     TypeMappings = new EntityMappingStore();
     var provider = new ReflectionMappingProvider();
 }
コード例 #47
0
 	/// <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();
 	}
コード例 #48
0
        /// <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;
                        }
                    }
                }
            }
        }
コード例 #49
0
 	static MyEntityContext() 
 	{
 		TypeMappings = new EntityMappingStore();
 		var provider = new ReflectionMappingProvider();
 	}
コード例 #50
0
        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));
                    }
                }
            }
        }
コード例 #51
0
 	/// <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();
 	}
コード例 #52
0
        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));
        }
コード例 #53
0
        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));
        }
コード例 #55
0
 	/// <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();
 	}
コード例 #56
0
        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));
        }