Asp.net 实体框架:实体名称与属性相同时的元数据?

Asp.net 实体框架:实体名称与属性相同时的元数据?,asp.net,entity-framework,ado.net,entity-framework-4,Asp.net,Entity Framework,Ado.net,Entity Framework 4,我有一个带有实体“Extensions”的EDM,在这个对象中是属性扩展。我把所有其他专栏都连接好了,但这一篇拒绝连接。我猜是因为实体和属性共享相同的名称? 这是我的代码,扩展不起作用,前缀起作用: Imports System.Web.DynamicData Imports System.ComponentModel.DataAnnotations <MetadataType(GetType(ExtensionsMetaData))> _ Partial Public Class

我有一个带有实体“Extensions”的EDM,在这个对象中是属性扩展。我把所有其他专栏都连接好了,但这一篇拒绝连接。我猜是因为实体和属性共享相同的名称? 这是我的代码,扩展不起作用,前缀起作用:

Imports System.Web.DynamicData
Imports System.ComponentModel.DataAnnotations
<MetadataType(GetType(ExtensionsMetaData))> _
Partial Public Class Extensions

End Class
Public Class ExtensionsMetaData
Private _phones_extensions As Object
Private _prefix As Object
Private _did_flag As Object
Private _len As Object
Private _sfc_id As Object
Private _name_display As Object
Private _floor As Object
Private _room As Object
Private _phones_departments As Object
Private _phones_buildings As Object
Private _phones_phones As Object
Private _phones_restriction_classes As Object
Private _phones_tens As Object
<DisplayName("Extension")> _
Public Property extensions() As Object
    Get
        Return _phones_extensions
    End Get
    Set(ByVal value As Object)
        _phones_extensions = value
    End Set
End Property
<DisplayName("Prefix")> _
Public Property prefix As Object
    Get
        Return _prefix
    End Get
    Set(ByVal value As Object)
        _prefix = value
    End Set
End Property
Imports System.Web.dynamicATA
导入System.ComponentModel.DataAnnotations
_
部分公共类扩展
末级
公共类扩展元数据
作为对象的专用电话扩展
私有前缀作为对象
Private _did_标记为对象
私有_lenas Object
私有_sfc_id作为对象
私有\u名称\u显示为对象
私人楼层作为对象
作为对象的私人房间
私人部门作为对象
以私人(电话)楼宇为对象
私人电话作为对象
私有类作为对象
私人电话作为对象
_
公共属性扩展()作为对象
得到
返回\u电话\u分机
结束
设置(ByVal值作为对象)
_电话扩展=值
端集
端属性
_
作为对象的公共属性前缀
得到
返回前缀
结束
设置(ByVal值作为对象)
_前缀=值
端集
端属性
末级

我怎样才能让这个代码工作?我已经查看了我的所有数据模型,它看起来应该是扩展名


我收到的错误是:“phoneDBentities.Extensions”类型的关联元数据类型包含以下未知属性或字段:Extensions。请确保这些成员的名称与主类型上属性的名称匹配。

这是EF“约定优先于配置”功能的限制

这里有一个相关的问题:


解决此问题的最简单方法是将该属性重命名为“PhoneExtension”。

对于面临相同问题的任何人,我是这样解决的:1。打开我的EDM。2.选择实体。3.右键单击并选择“重命名”。4.将实体添加到名称的末尾。很简单。