Data Access has been discontinued. Please refer to this page for more information.

Using String Based API

This article is relevant to entity models that utilize the deprecated Visual Studio integration of Telerik Data Access. The current documentation of the Data Access framework is available here.

This topic provides you information about the string based API. The Fluent Mapping API exposes the following extension methods from the Telerik.OpenAccess.Metadata.Fluent.Advanced namespace for property/field configuration. The common between all these methods is that they accept only string parameters.

  • HasField - returns a property configuration object that allows you to configure a class field.
  • HasMember - returns a property configuration object for a field/property pair.
  • HasPrimitiveField - returns a property configuration object for a primitive field.
  • HasPrimitiveMember - returns a property configuration object for a primitive field/property pair.
  • HasStringField - returns a property configuration object for a string field.
  • HasStringMember - returns a property configuration object for a string field/property pair.
  • HasDateTimeField - returns a property configuration object for a DateTime field.
  • HasDateTimeMember - returns a property configuration object for a DateTime field/property pair.
  • HasAssociationField - returns a property configuration object for a navigation field. Use for configuring an association between private fields.
  • HasAssociationMember - returns a property configuration object for a navigation field/property pair.
  • WithOppositeField - specifies the opposite field for an association.
  • WithOppositeMember - specifies the opposite property for an association.

All extension methods are located in the Telerik.OpenAccess.Metadata.Fluent.Advanced namespace.

Here is a sample FluentMetadataSource implementation demonstrating how to map the Address class using only string based methods.

public class FluentModelMetadataSource : FluentMetadataSource
{
   protected override IList<MappingConfiguration> PrepareMapping()
   {
       List<MappingConfiguration> configurations = new List<MappingConfiguration>();
       MappingConfiguration<Address> addressConfiguration = new MappingConfiguration<Address>();

       addressConfiguration.HasPrimitiveMember( "id", "Id" ).IsIdentity( KeyGenerator.Autoinc ).
            ToColumn( "AddressId" );
       addressConfiguration.HasStringMember( "addressLine1", "AddressLine1" ).
            ToColumn( "AddressLine" );
       addressConfiguration.HasStringMember( "city", "City" ).ToColumn( "City" ).
            IsNotNullable();
       addressConfiguration.HasDateTimeMember( "modifiedDate", "ModifiedDate" ).
            ToColumn( "ModifiedDate" ).
            WithDataAccessKind( Telerik.OpenAccess.DataAccessKind.ReadOnly );

       configurations.Add( addressConfiguration );

       return configurations;
   }
}
Public Class FluentModelMetadataSource
    Inherits FluentMetadataSource
    Protected Overrides Function PrepareMapping() As IList(Of MappingConfiguration)
        Dim configurations As New List(Of MappingConfiguration)()
        Dim addressConfiguration As New MappingConfiguration(Of Address)()

        addressConfiguration.HasPrimitiveMember("_id", "Id").IsIdentity(KeyGenerator.Autoinc). _
            ToColumn("AddressId")
        addressConfiguration.HasStringMember("_addressLine1", "AddressLine1"). _
            ToColumn("AddressLine")
        addressConfiguration.HasStringMember("_city", "City").ToColumn("City").IsNotNullable()
        addressConfiguration.HasDateTimeMember("_modifiedDate", "ModifiedDate").
            ToColumn("ModifiedDate"). _
            WithDataAccessKind(Telerik.OpenAccess.DataAccessKind.ReadOnly)

        configurations.Add(addressConfiguration)

        Return configurations
    End Function
End Class

Address Class

public class Address
{
   private int id;
   public int Id
   {
       get { return id; }
       set { id = value; }
   }

   private string addressLine1;
   public string AddressLine1
   {
       get { return addressLine1; }
       set { addressLine1 = value; }
   }

   private string city;
   public string City
   {
       get { return city; }
       set { city = value; }
   }

   private DateTime modifiedDate;
   public DateTime ModifiedDate
   {
       get { return modifiedDate; }
       set { modifiedDate = value; }
   }
}
Public Class Address
    Private _id As Integer
    Public Property Id() As Integer
        Get
            Return _id
        End Get
        Set(ByVal value As Integer)
            _id = value
        End Set
    End Property

    Private _addressLine1 As String
    Public Property AddressLine1() As String
        Get
            Return _addressLine1
        End Get
        Set(ByVal value As String)
            _addressLine1 = value
        End Set
    End Property

    Private _city As String
    Public Property City() As String
        Get
            Return _city
        End Get
        Set(ByVal value As String)
            _city = value
        End Set
    End Property

    Private _modifiedDate As Date
    Public Property ModifiedDate() As Date
        Get
            Return _modifiedDate
        End Get
        Set(ByVal value As Date)
            _modifiedDate = value
        End Set
    End Property
End Class