![]() |
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 FTP 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 FTP Entity Framework 6 assembly and the connection string.
To connect to FTP or SFTP servers, specify at least RemoteHost and FileProtocol. Specify the port with RemotePort.
Set User and Password to perform Basic authentication. Set SSHAuthMode to use SSH authentication. See the Getting Started section of the data provider help documentation for more information on authenticating via SSH.
Set SSLMode and SSLServerCert to secure connections with SSL.
The data provider lists the tables based on the available folders in your FTP server. Set the following connection properties to control the relational view of the file system:
Stored Procedures are available to download files, upload files, and send protocol commands. See the Data Model chapter of the FTP data provider documentation for more information.
<configuration> ... <connectionStrings> <add name="FTPContext" connectionString="Offline=False;RemoteHost=MyFTPServer;" providerName="System.Data.CData.FTP" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.FTP" type="System.Data.CData.FTP.FTPProviderServices, System.Data.CData.FTP.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class FTPContext : DbContext {
public FTPContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<FTPContext>(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("MyDirectory")]
public class MyDirectory {
[System.ComponentModel.DataAnnotations.Key]
public System.String Filesize { get; set; }
public System.String Filename { get; set; }
}
public DbSet<MyDirectory> MyDirectory { set; get; }
FTPContext context = new FTPContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.MyDirectory select line;
Download a free trial of the FTP Data Provider to get started:
Download NowLearn more:
👁 FTP IconAn easy-to-use database-like interface for .NET applications access to remote files and directories.