C# 从实体框架5.0中的模型获取主键名称

C# 从实体框架5.0中的模型获取主键名称,c#,asp.net-mvc-4,helper,C#,Asp.net Mvc 4,Helper,我的项目是用EF5和MVC4开发的。我想为一个模型创建一个助手,在这个助手中,我需要获取模型的主键名 这是我的助手: public static MvcHtmlString DialogForModel(this HtmlHelper html) { object model = html.ViewData.Model; string primaryKeyName = GetPrimaryKeyNameForModel(model); ... } 我发现模型中有一个属性

我的项目是用EF5和MVC4开发的。我想为一个模型创建一个助手,在这个助手中,我需要获取模型的主键名

这是我的助手:

public static MvcHtmlString DialogForModel(this HtmlHelper html)
{
    object model = html.ViewData.Model;
    string primaryKeyName = GetPrimaryKeyNameForModel(model);
    ...
}
我发现模型中有一个属性\u entityWrapper。在该属性中有另一个EntityKey,具有EntityKeyNames

这些属性有我的主键名称和值,但我不知道如何访问它


我怎么能这么做

我不知道你为什么需要它,但这可以解决你的问题。 创建包含key属性的BaseEntity类:

public class BaseEntity 
{
   public int Key { get; set; }
}
允许您从该类继承所有模型类:

public class SomeModelClass: BaseEntity 
{
    public string Prop{ get; set; }
}
在助手中,将模型转换为BaseEntity并获取键值。

-虽然有点晚,但我认为这将实现您的目标。