如何去除EF添加的对象名称上的后缀
本文关键字:后缀 对象 EF 添加 何去 | 更新日期: 2023-09-27 18:28:10
当我使用EF获取一堆对象并将它们添加到返回的数组中时,我注意到intellisense提供给我的类型不仅仅是类名。它还包含一个后缀,所以一个名为Donkey的类看起来是这样的。
System.Data.EEntity.DynamicProxies.Donkey_9D8D…EB8F
我需要它在属于我自己命名空间的表单上
FarmSpace.Donkey
我该如何转变成那样?一种方法是建立一个复制器,但我感觉还有一种更聪明的方法。或者至少是一种自动的方法
原因是,当我尝试返回EF驴时,我会得到错误502,但如果我自己处理对象,它似乎会起作用。我在另一个问题中问过这个问题,但没有得到太多回应(可能是因为假期或其他原因),所以我正在努力部署下一个最好的解决方案。
我不100%清楚你想做什么,也不清楚为什么EF代理对你来说是个问题。但如果你真的想摆脱代理(以延迟加载和自动更改跟踪为代价),你可以关闭它
请参阅使用代理了解如何做到这一点以及更多信息。
禁用代理创建
有时,阻止实体框架创建代理实例是有用的。例如,序列化非代理实例要比序列化代理实例容易得多。可以通过清除
ProxyCreationEnabled
标志来关闭代理创建。您可以在上下文的构造函数中执行此操作。例如:public class BloggingContext : DbContext { public BloggingContext() { this.Configuration.ProxyCreationEnabled = false; } public DbSet<Blog> Blogs { get; set; } public DbSet<Post> Posts { get; set; } }