PDA

View Full Version : اشکال در ارسال اطلاعات به بانک با استفاده از EF



maktab
شنبه 24 تیر 1391, 13:09 عصر
سلام. من اطلاعات برنامه را با استفاده از EF به بانک میفرستم.
فرض کنید یه جدول دانش آموز داشته باشیم آن وقت ارسال به این صورت میشه:


using (EntityCo _conn= new EntityCo())
{
Student obj = new Student();
obj.Name = name;
obj.Family = Family;
obj.Block = block;
_conn.Polls.AddObject(obj);
_conn.SaveChanges();
}


البته این کدها در داخل یک متد قرار میگیرند و مشخصات دانش آموز بعنوان ورودی متد در نظر گرفته میشوند. دراین حالت همه چیز به درستی کار میکند.
اما حالا ممکنه جدول دانش آموز با جدول انسان ارتباط یک به یک داشته باشد (ارث ببرد). در این صورت باید اطلاعات را به صورت زیر ارسال کرد:


using (EntityCo _conn= new EntityCo())
{
Student obj = new Student();
obj.Name = name;
obj.Family = Family;
obj.Block = block;
obj.Parent.Age = age;
obj.Parent.Serial = serial;
_conn.Polls.AddObject(obj);
_conn.SaveChanges();
}


در این صورت در ست کردن داده به جدول دوم اشکال میگیره. مثلا از این دستور obj.Parent.Age = age ارور زیر را میگیره:


Object reference not set to an instance of an object.


در صورتی که برای خواندن اطلاعات به همین شکل، مشکلی ندارد.

gwbasic
شنبه 24 تیر 1391, 14:43 عصر
این مورد ربطی به EF نداره بلکه یکی از مفاهیم پایه شی گرایی هست و اون اینکه قبل از مقدار دهی به خصوصیت باید شی ایجاد شود. بنابراین شما قبل از اینکه Age رو مقداردهی کنید باید Parent رو new کنید