在MVC中使用实体框架视图时,我在代码中遇到了一个非常奇怪的问题。我只是怀疑将问题归结为使用View,因为我在使用Tables时没有问题。
我的视图称为LoadAuditStats_Report,索引的控制器代码为:
private readonly RepositoryDBContext _repository = new RepositoryDBContext();
public ActionResult Index()
{
var stats = _repository.LoadAuditStats_Report;
return View(stats);
}
视图中的数据示例如下:
如果我从Controller中检查示例的结果输出,我将获得3条记录,但所有3条记录的数据将重复第一条记录。因此,在这种情况下,所有3条记录将具有相同的PackageAuditId 700字段值。
这真的很奇怪,因为我在使用Tables时从未见过这个问题所以我不得不怀疑EntityFramework4在与视图相关时是否存在与MVC3接口的问题?
我应该避免使用EntityFramework Views吗?或者在使用EntityFramework Views时是否应该考虑其他内容?
答案 0 :(得分:2)
视图在EF中也有一个主键。如果键由不是唯一的字段组成,则可以在结果集中获得重复的行。因此,您应该调查视图并确定哪些列唯一标识其行,并告诉EF将这些列用作主键。