我如何避免为实体框架添加哈希到我的实体名称
Posted
技术标签:
【中文标题】我如何避免为实体框架添加哈希到我的实体名称【英文标题】: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,现在可以正常使用了。
我将此添加为您的问题的答案,您只需在答案左侧标记刻度以使其变为绿色:)
【参考方案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,很高兴听到 :)以上是关于我如何避免为实体框架添加哈希到我的实体名称的主要内容,如果未能解决你的问题,请参考以下文章