1

在 MVC 中使用实体框架视图时,我的代码中遇到了一个非常特殊的问题。我只是怀疑问题归因于使用 View,因为我在使用 Tables 时没有问题。

我的视图称为 LoadAuditStats_Report,索引的控制器代码是:

    private readonly RepositoryDBContext _repository = new RepositoryDBContext();
    public ActionResult Index()
    {
        var stats = _repository.LoadAuditStats_Report;

        return View(stats);
    }

视图中的数据示例如下:

在此处输入图像描述

如果我从控制器检查示例的结果输出,我将获得 3 条记录,但所有 3 条记录的数据将重复第 1 条记录。所以在这种情况下,所有 3 条记录都将具有相同的 PackageAuditId 字段值 700。

这真的很奇怪,因为我在使用表时从未见过这个问题,所以我想知道 EntityFramework4 在与视图相关时与 MVC3 接口是否存在问题?

我应该避免使用 EntityFramework 视图,还是在使用它们时应该考虑其他一些事情?

4

1 回答 1

2

视图在 EF 中也有一个主键。如果键由不是真正唯一的字段组成,您可能会在结果集中获得重复的行。因此,您应该调查视图并确定哪些列唯一标识其行并告诉 EF 使用这些列作为主键。

于 2012-11-16T15:41:04.373 回答