![]() |
VOOZH | about |
Microsoft Entity Framework serves as an object-relational mapping framework for working with data represented as objects. Although Visual Studio offers the ADO.NET Entity Data Model wizard to automatically generate the Entity Model, this model-first approach may present challenges when your data source undergoes changes or when you require greater control over entity operations. In this article, we will delve into the code-first approach for accessing FHIR data through the CData ADO.NET Provider, providing you with more flexibility and control.
Modify the App.config file in the project to add a reference to the FHIR Entity Framework 6 assembly and the connection string.
Set URL to the Service Base URL of the FHIR server. This is the address where the resources are defined in the FHIR server you would like to connect to. Set ConnectionType to a supported connection type. Set ContentType to the format of your documents. Set AuthScheme based on the authentication requirements for your FHIR server.
Generic, Azure-based, AWS-based, and Google-based FHIR server implementations are supported.
The product supports connections to custom instances of FHIR. Authentication to custom FHIR servers is handled via OAuth (read more about OAuth in the Help documentation. Before you can connect to custom FHIR instances, you must set ConnectionType to Generic.
<configuration> ... <connectionStrings> <add name="FHIRContext" connectionString="Offline=False;URL=http://test.fhir.org/r4b/;ConnectionType=Generic;ContentType=JSON;AuthScheme=None;" providerName="System.Data.CData.FHIR" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.FHIR" type="System.Data.CData.FHIR.FHIRProviderServices, System.Data.CData.FHIR.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class FHIRContext : DbContext {
public FHIRContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<FHIRContext>(null);
// To remove the plural names
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;
[System.ComponentModel.DataAnnotations.Schema.Table("Patient")]
public class Patient {
[System.ComponentModel.DataAnnotations.Key]
public System.String Id { get; set; }
public System.String [name-use] { get; set; }
}
public DbSet<Patient> Patient { set; get; }
FHIRContext context = new FHIRContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.Patient select line;
Download a free trial of the FHIR Data Provider to get started:
Download NowLearn more:
👁 FHIR IconRapidly create and deploy powerful .NET applications that integrate with FHIR.