![]() |
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 YouTube Analytics 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 YouTube Analytics Entity Framework 6 assembly and the connection string.
YouTube Analytics uses the OAuth authentication standard. You can use the embedded CData OAuth credentials or you can register an application with Google to obtain your own.
In addition to the OAuth values, to access YouTube Analytics data set ChannelId to the Id of a YouTube channel. You can obtain the channel Id in the advanced account settings for your channel. If not specified, the channel of the currently authenticated user will be used.
If you want to generate content owner reports, specify the ContentOwnerId property. This is the Id of the copyright holder for content in YouTube's rights management system. The content owner is the person or organization that claims videos and sets their monetization policy.
<configuration> ... <connectionStrings> <add name="YouTubeAnalyticsContext" connectionString="Offline=False;ContentOwnerId=MyContentOwnerId;ChannelId=MyChannelId;InitiateOAuth=GETANDREFRESH;" providerName="System.Data.CData.YouTubeAnalytics" /> </connectionStrings> <entityFramework> <providers> ... <provider invariantName="System.Data.CData.YouTubeAnalytics" type="System.Data.CData.YouTubeAnalytics.YouTubeAnalyticsProviderServices, System.Data.CData.YouTubeAnalytics.Entities.EF6" /> </providers> <entityFramework> </configuration> </code>
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
class YouTubeAnalyticsContext : DbContext {
public YouTubeAnalyticsContext() { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// To remove the requests to the Migration History table
Database.SetInitializer<YouTubeAnalyticsContext>(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("Groups")]
public class Groups {
[System.ComponentModel.DataAnnotations.Key]
public System.String Snippet_Title { get; set; }
public System.String ContentDetails_ItemCount { get; set; }
}
public DbSet<Groups> Groups { set; get; }
YouTubeAnalyticsContext context = new YouTubeAnalyticsContext(); context.Configuration.UseDatabaseNullSemantics = true; var query = from line in context.Groups select line;
Download a free trial of the YouTube Analytics Data Provider to get started:
Download NowLearn more:
👁 YouTube Analytics IconEasy-to-use YouTube Analytics client enables .NET-based applications to easily consume YouTube Analytics Traffic, Sources, Demographics, Subscribers, etc.