工具: 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