Model.GetType()。名称附加了看起来像GUID的名称

时间:2013-02-27 22:00:03

标签: entity-framework asp.net-mvc-4 ef-code-first proxy-classes

我正在做一个代码第一个ASP .NET MVC项目。

在我看来,我正在接纳该实体。

@model MyProject.Model.MyEntity

在视图中,我正在渲染局部视图,传入模型。

@Html.Partial("_Edit", Model)

在这个局部视图中,我将模型定义为对象。

@model object

当我显示模型的类型时,我会看到附加了GUID的内容。

@{
    Type entityType = Model.GetType();
    string singularName = entityType.Name;
}

@{ ViewBag.Title = "Edit an existing " + singularName; }

这就是我在屏幕上看到的内容:

编辑现有的MyEntity_CB3FF0C41867D7757E4AF90F10EE2F7ED5B407EFCB96592EC3FB0A06DCAB902B

任何人都知道为什么并且除了在下划线上执行SubString()之外还有其他办法吗?

1 个答案:

答案 0 :(得分:3)

此问题植根于实体框架而非MVC x。

我遇到了同样的问题并打印出我的模型的完全限定名称(“SupportContactSecurity”):

System.Data.Entity.DynamicProxies.SupportContactSecuri_4C68726A6CC129D0001F286F1E38612D8DEC28F26CA3D3884B53BCDF810D8E6A 

DynamicProxies 是那里的关键字。实体框架(默认情况下)用这些代理替换您的实体,以便它可以在上下文级别进行更改跟踪(我认为)。如果要关闭此功能,请参阅this Stack Exchange question