工具: Visual Studio 2010中
语言: C#卡住了“EntityCollection已经被初始化。”错误
我刚开始学习实体框架,我被困在一个问题,whenver我用编号#1,它工作正常,但每当我用CODE#2,我得到错误(贴在下面)
标题: InvalidOperationException异常是未处理的用户代码
错误消息“”EntityCollection已经被初始化。该InitializeRelatedCollection方法只应调用对象图的反序列化期间初始化新EntityCollection“
//SchoolModel.Designer.cs
public EntityCollection<Course> Courses
{
get
{ //Blah blah code }
set
{
if ((value != null))
{//Below statement is pointed by Visual Studio as Exception Thrower
((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Course>("SchoolModel.CourseInstructor", "Course", value);
}
}
}
CODE#1:
List<string> list = new List<string>();
var prs = new Person();
using (var myEntity = new SchoolEntities())
{
var result = myEntity.People;
foreach (var ppl in result)
{
list.Add(ppl.PersonID+","+ppl.FirstMidName);
}
}
CODE#2:
List<string> list = new List<string>();
List<Person> prsList = new List<Person>();//when using this list,problem started
var prs = new Person();
using (var myEntity = new SchoolEntities())
{
var result = myEntity.People;
foreach (var ppl in result)
{
list.Add(ppl.PersonID+","+ppl.FirstMidName);
//New code which raised exceptions
prs.PersonID = ppl.PersonID;
prs.FirstMidName = ppl.FirstMidName;
prs.LastName = ppl.LastName;
prs.Courses = ppl.Courses;
prsList.Add(prs);
//New code end
}
}
数据库图表:
实体图:
PS:
- 我跟着EF教程在http://www.asp.net/web-forms/tutorials/getting-started-with-ef/the-entity-framework-and-aspnet-getting-started-part-3,然后偏离,并开始一起玩它:)
- 我确实发现了一些相关的错误问题,但我的情况不同。
我对EF的CRUD操作更感兴趣(我必须在一个项目中以最短的时间快速实现),现在没有足够的时间来详细学习 – 2012-03-19 06:49:06
您是否在不同的线程中重复使用上下文?上下文不是线程安全的。 – 2012-03-19 08:23:42
@AkashKava我没有使用任何线程,因为我刚刚学习,+ 1的评论 – 2012-03-19 08:43:59