Entity Framework 和 MS Dynamics CRM 插件
Entity Framework and MS Dynamics CRM Plugin
是否可以在 CRM 插件中使用 Entity Framework?
这是我的 DbContext 和 DbConfiguration:
[DbConfigurationType(typeof(Config))]
public class Context : DbContext
{
public Context(string nameOrConnectionString)
: base(nameOrConnectionString)
{
Database.SetInitializer<Context>(new DropCreateDatabaseIfModelChanges<Context>());
}
public DbSet<Contact> ContactSet { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Contact>().Property(i => i.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
}
public class Config : DbConfiguration
{
public Config()
{
SetDefaultConnectionFactory(new System.Data.Entity.Infrastructure.SqlConnectionFactory());
SetProviderServices(SqlProviderServices.ProviderInvariantName, SqlProviderServices.Instance);
}
}
在插件中,当我尝试对 ContactSet 执行 CRUD 操作时出现错误:
The type initializer for 'System.Data.Entity.Migrations.History.HistoryRepository' threw an exception.
我在控制台应用程序中测试了这段代码,它有效。
任何意见或建议将不胜感激。
更新
联系人是 EF 模型而不是 CRM 实体。
此问题的解决方案是将数据库初始化程序设置为空
Database.SetInitializer<Context>(null);
是否可以在 CRM 插件中使用 Entity Framework?
这是我的 DbContext 和 DbConfiguration:
[DbConfigurationType(typeof(Config))]
public class Context : DbContext
{
public Context(string nameOrConnectionString)
: base(nameOrConnectionString)
{
Database.SetInitializer<Context>(new DropCreateDatabaseIfModelChanges<Context>());
}
public DbSet<Contact> ContactSet { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Contact>().Property(i => i.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
}
public class Config : DbConfiguration
{
public Config()
{
SetDefaultConnectionFactory(new System.Data.Entity.Infrastructure.SqlConnectionFactory());
SetProviderServices(SqlProviderServices.ProviderInvariantName, SqlProviderServices.Instance);
}
}
在插件中,当我尝试对 ContactSet 执行 CRUD 操作时出现错误:
The type initializer for 'System.Data.Entity.Migrations.History.HistoryRepository' threw an exception.
我在控制台应用程序中测试了这段代码,它有效。
任何意见或建议将不胜感激。
更新
联系人是 EF 模型而不是 CRM 实体。
此问题的解决方案是将数据库初始化程序设置为空
Database.SetInitializer<Context>(null);