0

假设我创建了一个新实体并将其保存如下:

UserReport report = new UserReport() {//set the props}
manager.SaveUserReport(report)

Public UserReport SaveUserReport(UserReport report)
{
  using(var context = new ReportDatabase())
  {
    context.UserReports.AdObject(report);
    context.SaveChanges();
  }
  return report;
}

到目前为止,一切都很好

然后我读回保存的报告

 savedReport = manager.GetUserReports(new int[] {report.Id}).FirstOrDefault();

 Public List<UserReport> GetUserReports(IEnumerable<int> reportIds)
 {
     using (var context = new ReportDatabase())
     {
        var reports = from UserReport in context.UserReports
          where reportIds.Contains(userReport.Id)
          select userReport;
          return visibleReports.ToList();
     }
 }

savedReport 现在是附加的 UserReport

UserReport 对象具有附加到它的列集合。

我想用另一组(数据库中已经存在的)替换附加的一组列。

 savedReport.Columns = newColumnCollection

此操作失败,错误“无法设置 UserReport_etc 类型的属性列”,因为集合已设置为 EntityCollection”

我看过这篇文章:问题是一样的,但我不能使用那个解决方案。

解决这个问题的正确方法是什么?

4

1 回答 1

0

好的 - 看起来这只是将非导航属性设置为非虚拟的情况。

这是一种非常奇怪的情况,因为被修改的行为是保持为虚拟的属性。

于 2012-06-15T17:46:27.127 回答