none
wcf ria service调用视图,无法显示更新数据。 RRS feed

  • 问题

  • SELECT   dbo.HRM_Person.PersonId, dbo.HRM_Person.Name AS 姓名, dbo.HRM_Person.IdCard AS 身份证,
                    dbo.HRM_Person.Sex AS 性别, dbo.HRM_Person.BirthDate AS 出生日期, dbo.HRM_Nation.NationName AS 民族,
                    dbo.HRM_Additional.ResidenceType AS 户口性质, dbo.HRM_Organization.FastCode,
                    dbo.HRM_Organization.OrganizationName AS 机构, dbo.HRM_Post.PostName AS 岗位名称,
                    dbo.HRM_PostSort.PostSortId, dbo.HRM_PostSort.PostSortName AS 岗位分类, dbo.HRM_PostSeries.PostSeriesId,
                    dbo.HRM_PostSeries.PostSeriesName AS 岗位系列, dbo.HRM_EmploymentForm.EmploymentFormName AS 用工形式,
                    dbo.HRM_Insure.Insurance AS 险种, dbo.HRM_Person.BehiredDate AS 拟录用日期,
                    dbo.HRM_Education.EducationName AS 学历, dbo.HRM_State.StateName AS 状态, dbo.HRM_State.StateId,
                    dbo.HRM_Organization.OrganizationId, dbo.HRM_Post.PostId, dbo.HRM_EmploymentForm.EmploymentFormId,
                    dbo.HRM_Study.SchoolGraduated AS 毕业院校, dbo.HRM_Contact.Mobile AS 手机,
                    dbo.HRM_Professional.ProfessionalName AS 所学专业, dbo.HRM_Professional.ProfessionalId,
                    dbo.HRM_Nation.NationId, dbo.HRM_Education.EducationId
    FROM      dbo.HRM_Insure RIGHT OUTER JOIN
                    dbo.HRM_Person LEFT OUTER JOIN
                    dbo.HRM_Organization INNER JOIN
                    dbo.HRM_PostSort INNER JOIN
                    dbo.HRM_Post INNER JOIN
                    dbo.HRM_Work ON dbo.HRM_Post.PostId = dbo.HRM_Work.PostId ON
                    dbo.HRM_PostSort.PostSortId = dbo.HRM_Post.PostSortId INNER JOIN
                    dbo.HRM_PostSeries ON dbo.HRM_PostSort.PostSeriesId = dbo.HRM_PostSeries.PostSeriesId ON
                    dbo.HRM_Organization.OrganizationId = dbo.HRM_Work.OrganizationId INNER JOIN
                    dbo.HRM_EmploymentForm ON
                    dbo.HRM_Work.EmploymentFormId = dbo.HRM_EmploymentForm.EmploymentFormId ON
                    dbo.HRM_Person.PersonId = dbo.HRM_Work.PersonId LEFT OUTER JOIN
                    dbo.HRM_Additional INNER JOIN
                    dbo.HRM_Nation ON dbo.HRM_Additional.NationId = dbo.HRM_Nation.NationId ON
                    dbo.HRM_Person.PersonId = dbo.HRM_Additional.PersonId ON
                    dbo.HRM_Insure.PersonId = dbo.HRM_Person.PersonId LEFT OUTER JOIN
                    dbo.HRM_Contact ON dbo.HRM_Person.PersonId = dbo.HRM_Contact.PersonId LEFT OUTER JOIN
                    dbo.HRM_State INNER JOIN
                    dbo.HRM_StateSeries ON dbo.HRM_State.StateSeriesId = dbo.HRM_StateSeries.StateSeriesId ON
                    dbo.HRM_Person.StateId = dbo.HRM_State.StateId LEFT OUTER JOIN
                    dbo.HRM_Education INNER JOIN
                    dbo.HRM_Study ON dbo.HRM_Education.EducationId = dbo.HRM_Study.EducationId LEFT OUTER JOIN
                    dbo.HRM_Professional ON dbo.HRM_Study.ProfessionalId = dbo.HRM_Professional.ProfessionalId ON
                    dbo.HRM_Person.PersonId = dbo.HRM_Study.PersonId

         以上是视图代码。

    用实体类框架生成的视图,然后生成ria service,更新数据后,检索视图没有变化,但是数据库已经修改了,重新进入后视图更新。

    这个到底怎么回事???

    2010年4月15日 8:20

答案

  • 已解决,如果视图中只有Inner join的话无论什么情况都可以更新,如果存在left 、right、full join的话,那么就需要在查询视图的时候,重新声明一个domaincontext就可以显示更新后的数据了。
    2010年4月27日 0:39

全部回复

  • 看View看不出什么东西来,你Ria做了什么了? 你如何更新数据的? 检索视图如何显示的?如何绑定到UI的? 这些细节都有可能有问题,所以你要再详细描述一下别人才能帮你看看,是吧?

    2010年4月16日 4:39
  • 不是绑定到UI的问题,我断点看了一下,我更新完数据后,再通过视图读取数据的时候,视图里的数据还是老的。

    2010年4月16日 7:53
  • 你好,

          你更新过你的Model了么,既然数据库已经改了,Model肯定也需要更新一下。

    2010年4月21日 0:46
  • 我在视图里用了left join,所以视图才不更新的,但是又必须得用。。。

    2010年4月26日 8:49
  • 已解决,如果视图中只有Inner join的话无论什么情况都可以更新,如果存在left 、right、full join的话,那么就需要在查询视图的时候,重新声明一个domaincontext就可以显示更新后的数据了。
    2010年4月27日 0:39