代码之家  ›  专栏  ›  技术社区  ›  ram

数据库视图的实体框架结果不一致

  •  16
  • ram  · 技术社区  · 15 年前

    Column-N (Expected result/ result from DB view)
    ---------
    data1
    data2
    data3
    data4
    data5
    
    Column-N(Actual result generated by entity framework)
    ---------
    data1
    data1
    data1
    data1
    data1
    

    我启动了我的SQL profiler,得到了由我的应用程序发送到sqlserver的查询,运行它,它返回了我期望的结果。

    MSDN也有类似的帖子 here here 但主持人并未详细阐述如何解决这一问题。我的钥匙正好是个GUID

    我认为你指出的根本原因 应用程序端EF映射 不同的对象映射规则 数据库。当查询结果 从数据库返回的 将在应用程序上进行映射 逻辑。

    重要的是接受这些逻辑 在数据库端查看查询。我 你觉得你应该调整一下

    问题,如果没有请提供 问题和视图查询

    谢谢宾泽

    2 回复  |  直到 15 年前
        1
  •  19
  •   Joel Martinez    15 年前

    问题其实出在钥匙上。视图中的每一行都必须有一个唯一的标识符。b)在edmx中相应地映射该键。否则,正如引号所述,映射逻辑将看到每个后续行和图,它可以使用之前返回的相同对象实例

        2
  •  0
  •   spiderman    12 年前

    VReport )是从VS2010向导自动生成的,类似于:

    class VReport
    Line: int (key) 
    Desc: string 
    Date: DateTime
    

    但是,日期列/字段也必须参与实体键的形成

    所以,为了解决这个问题,我将字段的属性从 实体键 :假->

    class VReport
    Line: int (key) 
    Desc: string 
    Date: DateTime (key)