.net 更改实体可访问性

.net 更改实体可访问性,.net,entity-framework,.net,Entity Framework,我想使一个实体成为内部实体。我已将实体、其标量属性和导航属性更改为内部。我在尝试构建时遇到以下错误: 错误6036:EntityType“文件”具有“内部”可访问性,EntitySet“文件”具有具有“公共”可访问性的get属性。EntitySet的get属性的访问限制不得小于包含EntityType的访问限制 由于此错误,我无法编辑designer.cs。它未生成。我已经检查了edmx文件,但没有任何与“文件”或“文件”关联的公共值。我该怎么办 在VS实体设计器中打开模型 切换到“模型浏览器”

我想使一个实体成为内部实体。我已将实体、其标量属性和导航属性更改为内部。我在尝试构建时遇到以下错误:

错误6036:EntityType“文件”具有“内部”可访问性,EntitySet“文件”具有具有“公共”可访问性的get属性。EntitySet的get属性的访问限制不得小于包含EntityType的访问限制

由于此错误,我无法编辑designer.cs。它未生成。我已经检查了edmx文件,但没有任何与“文件”或“文件”关联的公共值。我该怎么办

  • 在VS实体设计器中打开模型
  • 切换到“模型浏览器”窗口
  • 展开以下节点:
    • ModelName.edmx
      • 模型
        • 实体类型
        • 复杂类型
        • 联想
        • 实体容器:MyEntities
          • 实体集
  • 在“实体集”列表中,您应该看到“文件”的条目。点击它
  • 切换到属性编辑器窗口并更改Getter可见性
  • 我在模型浏览器中找不到“EntityContainer:MyEntities”。我仍然不知道为什么--我的实体设计器和模型浏览器在其他方面都功能齐全,除了这个。因此,我能够直接通过XML更改Getter可见性。只需使用XML编辑器打开.edmx文件,并在“CSDL内容”部分添加与此类似的GetterAccess属性

    
    
    谢谢,这就成功了。现在我得到了不同的错误:“不一致的可访问性:属性类型'System.Data.Objects.DataClasses.EntityCollection'比属性'BLL.Proje.tblFiles'更难访问。”。我已经检查了ModelName.edmx>ModelName.Store>Tables/Views>tblFiles,但它没有任何可访问性属性。我手动编辑了设计器代码,但它确实恢复为public,所以我认为有一种更合适的方法?这是一个C#错误,而不是EDMX错误。什么是
    BLL.Proje.tblFiles
    ?Proje是另一个实体。文件实体与名为“tblFiles”的导航属性的Proje关联。事实证明,我必须更改Proje表上tblFiles导航属性的access属性,它现在可以工作了。非常感谢。我也没有EntityContainer节点,但是在编辑XML之后它出现了!我知道原因:)您无法在浏览器中看到EntitySet,因为您首先将容器的可见性更改为“内部”,然后尝试查找EntitySet(默认情况下是公共的)。这就是他们失踪的原因。尝试设置从低级实体到高级实体的可见性,即1.实体2.实体集3.实体容器
    <EntitySet Name="Locations" EntityType="MyComponent.Location" a:GetterAccess="Internal" />