0
我有兩個導航屬性在一個到另一個模型。模型看起來像這樣: 我在同一視圖中調用兩個模型。將SuiteCategoryModels作爲默認值,將SuitesModels作爲分部視圖。MVC DataReader連接相關問題
public class SuiteCategoryModels
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int SuiteCatID { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Category")]
[StringLength(50, ErrorMessage = "The {0} must be at least 6 characters long.", MinimumLength = 6)]
public string CatName { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Category Description")]
[StringLength(500, ErrorMessage = "The {0} must be at least 6 characters long.", MinimumLength = 6)]
public string CatDesc { get; set; }
public virtual ICollection<SuitesModels> SuitesModels { get; set; }
}
和第二模型是這樣的:
public class SuitesModels
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int SuiteID { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Suite Name")]
[StringLength(50, ErrorMessage = "The {0} must be at least 6 characters long.", MinimumLength = 6)]
public string SuiteName { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Description")]
[StringLength(50, ErrorMessage = "The {0} must be at least 6 characters long.", MinimumLength = 6)]
public string SuiteDesc { get; set; }
[DataType(DataType.ImageUrl)]
[Display(Name = "Picture")]
public string SuitePix { get; set; }
[Required]
[Display(Name = "Rate")]
public int SuiteRate { get; set; }
[Required]
[Display(Name = "Persons Per Suite")]
public int PersonPerSuite { get; set; }
[Required]
[Display(Name = "Status")]
public bool SuiteStatus { get; set; }
public int SuiteCatID { get; set; }
public virtual SuiteCategoryModels SuiteCategory { get; set; }
}
我創建了一個控制器操作以查看這樣的:
public ActionResult Index()
{
var m = db.SuiteCategoryModels.ToList();
//ViewBag.BB =
//Dispose(false);
return View(m);
}
和其他這樣的:
public ActionResult SuitesIndex(int id = 0)
{
var mm = db.Suites.Select(r => r.SuiteCategory)
.Where(r => r.SuiteCatID == id);
//SuitesModels suitesmodels = db.Suites.Find(id);
if (mm == null)
{
return HttpNotFound();
}
return PartialView("SuitesIndex", mm.ToList());
}
但我有一個錯誤頁面指出:There is already an open DataReader associated with this Command which must be closed first.
。
- 這個錯誤的原因是什麼?
- 我該怎麼做才能糾正這個問題?
db是否在兩種情況下都引用相同的實例,例如類成員?如果不是,它應該。 – snort
重複? http://stackoverflow.com/questions/6062192/there-is-already-an-open-datareader-associated-with-this-command-which-must-be-c – Jeff
看到這個問題:http:// stackoverflow。 com/questions/7927990/entity-framework-there-is-already-an-open-datareader-associated-with-this-comma – snort