.net 延迟加载实体框架v.1中的昂贵字段

.net 延迟加载实体框架v.1中的昂贵字段,.net,entity-framework,lazy-loading,.net,Entity Framework,Lazy Loading,在围网打猎之后,我想我已经想出了解决办法,我似乎又碰上了另一堵墙 我的数据库中有一个表:照片;包含用于PhotoID、标题、排序和四组二进制数据的列:原始、大型、中型和小型(是的,它基于旧的ASP.NET初学者工具包,并带有各种修复程序等) 我正在从L2S转移到实体框架的过程中,因为我似乎从中获得了一些优势-因此我不再需要通过PhotoTags属性获取附加到照片的标记列表,例如,但我正在寻找一种延迟加载二进制数据的方法-大多数情况下,我只需要标题、标记和ID,然后,当用户实际查看图像时,我将这些

在围网打猎之后,我想我已经想出了解决办法,我似乎又碰上了另一堵墙

我的数据库中有一个表:照片;包含用于PhotoID、标题、排序和四组二进制数据的列:原始、大型、中型和小型(是的,它基于旧的ASP.NET初学者工具包,并带有各种修复程序等)

我正在从L2S转移到实体框架的过程中,因为我似乎从中获得了一些优势-因此我不再需要通过PhotoTags属性获取附加到照片的标记列表,例如,但我正在寻找一种延迟加载二进制数据的方法-大多数情况下,我只需要标题、标记和ID,然后,当用户实际查看图像时,我将这些数据交给另一个区域以获取二进制数据

我看了以下帖子:

  • 第7章:(7.1昂贵字段的延迟加载)
  • 我最终得到了一个实体映射,如下所示:

    并且,根据上面的链接,我修改了edmx文件以包含以下引用约束:

    <ReferentialConstraint>
      <Principal Role="Photos">
        <PropertyRef Name="PhotoID" />
      </Principal>
      <Dependent Role="PhotoDetails">
        <PropertyRef Name="PhotoID" />
      </Dependent>
    </ReferentialConstraint>
    
    
    
    模型会验证,但不会生成-因为标记映射存在问题,我认为:

    错误3019:映射从第871892行开始的片段时出现问题:组合键列的映射不正确。外键约束“FK_siteContent_Tagshotos_siteContent_照片”从表siteContent_Tagshotos(PhotoID)到表siteContent_照片(PhotoID):表siteContent_Tagshotos中的列(PhotoID)映射到siteContent_Tagshotos中的属性(PhotoID),表siteContent_照片中的列(PhotoID)映射到属性(PhotoID)在光电探测器中。列在映射中的顺序不保留

    从照片到标签的关系是通过链接表、列PhotoID和TagID建立的

    有没有人能够得到这些建议,或者类似的东西,来使用.NET3.5SP1中的实体框架和这样的数据结构?或者你能指出我的谷歌浏览器的局限性吗

    我知道在.NET4中这一切都会容易得多,但这并不在这里,而且在它发布之后,我的主机可能需要一段时间才能开始提供在某个地方安装它


    谢谢。

    我遇到了同样的问题,虽然我还没有找到3.5SP1的解决方案,但我确认EF 4.0消除了这个错误


    实际上,一个潜在的解决方法是在PhotoDetails实体中为主键使用不同的字段。

    所谓“主键的不同字段”,您的意思是给它一个不同的名称,但使用相同的基础数据库列,还是在数据库中添加一个新列,然后使用它?很遗憾,我现在尝试了这两种方法:重命名实体上的scalar属性,这会导致相同的错误消息(映射中列的顺序不保留),向数据库添加新列,在两个实体中公开该列,并将其用作键,导致以下错误:“你还没有在PhotoDetails中使用实体键PhotoID”。我担心我将不得不重做实时数据库-对LinqPad来说是的,还有游标;)我的意思是在数据库中添加一个新列并使用它。