【问题标题】:How i can avoid hash added for Entity Framework to my entity name我如何避免为实体框架添加哈希到我的实体名称
【发布时间】:2019-03-18 07:28:37
【问题描述】:

有人能帮我理解为什么实体的框架会在实体名称中添加“哈希”或类似的东西吗?

我有一个命名实体 BankMovementHeader 但是,当使用实体框架恢复数据库时,给我带来了 System.Data.Entity.DynamicProxies.BankMovementHeader_D10A1C5179505A4186BA0005487B525128E7B58FBCA552E31ED17A33A4671673 之类的东西,不知道为什么要添加 _D10A1C5179505A4186BA0005487B525128E7B58FBCA552E31ED17A33A4671673 的值。

这对我不利,因为我想使用实体在 xml 对象中对其进行分析。

【问题讨论】:

  • 尝试修改您的 DbContext 类,例如 => public YourDbContext() : base("name=YourDbContext") { Database.SetInitializer<YourDbContext>(null); Configuration.ProxyCreationEnabled = false; }
  • 感谢@ershoaib 的回复,如果我的 DbContext 是使用实体框架创建的(DB First Approach),我该怎么做
  • 对于 DB 优先方法,当您在应用程序中为 DbContext 创建全局变量时,只需将其设置为 _dbContext.Configuration.ProxyCreationEnabled = false;
  • 非常感谢@ershoaib,现在可以正常使用了。
  • 我将此添加为您的问题的答案,您只需在答案左侧标记刻度以使其变为绿色:)

标签: c# entity-framework asp.net-mvc-5


【解决方案1】:

1) 如果您使用带有Code-First 方法的实体框架。然后修改 DbContext 类的实现,例如

public YourDbContext() : base("name=YourDbContext")
{
    //Your other configuration here
    Configuration.ProxyCreationEnabled = false;
}

2) 如果您使用带有Database-First 方法的实体框架。然后在你的应用程序中为DbContext 设置你的全局变量。

_dbContext.Configuration.ProxyCreationEnabled = false;

【讨论】:

  • @AdolfoMazariegos,很高兴听到 :)
猜你喜欢
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多