实体框架和MS Dynamics CRM插件
问题描述:
是否可以在CRM插件中使用实体框架?实体框架和MS Dynamics CRM插件
这是我的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操作,我得到错误:
我测试的控制台应用程序的代码和它的作品。
任何意见或建议将不胜感激。
更新
联系人是EF模型而不是CRM实体。
答
这个问题的解决方案是设置数据库初始化为null
Database.SetInitializer<Context>(null);
为什么为什么为什么为什么 –
你知道的早期绑定生成可通过SDK?有一个名为[Early Bound Generator]的免费XrmToolbox工具(https://github.com/daryllabar/DLaB.Xrm.XrmToolBoxTools/wiki/Early-Bound-Generator),它使用SDK的功能来生成早期绑定对象,您可以在您的代码中使用,它具有一些很棒的功能,可以最大限度地减少您单独使用SDK功能时可能遇到的痛苦。我强烈推荐它。 – Polshgiant
你想做什么?你的插件代码中的数据库配置是什么? –