当前位置:  开发笔记 > 编程语言 > 正文

EntityFramework从SQL Server视图返回损坏/交换的数据

如何解决《EntityFramework从SQLServer视图返回损坏/交换的数据》经验,为你挑选了0个好方法。

我有一个简单的查询从SQL Server中的视图:

SELECT [PricePerM]
FROM RealtyStatParent
ORDER BY PricePerM

当我在SQL Management Studio中执行查询时,会得到正确的结果。这意味着我得到了2532行,从1.00开始到173543.6893结束。

当我使用实体框架从C#进行查询时,得到了相同的结果:

var justDecimals = context.RealtyStatParents                
    .OrderBy(item => item.PricePerM)
    .Select(item => item.PricePerM)
    .ToArray();

到现在为止,没有什么特别的。但是我真正不明白的是以下查询。我先选择整行,然后选择价格(十进制)。

var entireRows = context.RealtyStatParents                
    .OrderBy(item => item.PricePerM)        
    .ToArray();

var decimalFromRows = entireRows 
    .Select(item => item.PricePerM)
    .ToArray();

重复很多PricePerM值(值1或48),而不是实际值,并且结果集的顺序不正确。

EF设计器中行的定义很简单:

public partial class RealtyStatParent
{
    public Nullable PricePerM { get; set; }
    public int BusinessCategory { get; set; }
    public decimal obec_kod { get; set; }
    public Nullable ParentCategoryId { get; set; }
}

更新

我相信这种奇怪的行为与Entity Framework返回不良数据有关,因为视图没有主键。EF决定将Entity Key设置在Column BusinessCategory和obec_kod上,二者组合在一起是唯一的。我希望我离我很近,但还不够。

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有