Priere Law

Priere Law

  • NA
  • 1
  • 2.6k

C# Linq to Entities - Reference.EntityKey

Nov 1 2011 5:44 AM
C# Linq to Entities - Reference.EntityKey

Now that I have built a database and here is the corresponding SQL code: http://www.mediafire.com/?f4a0d74j7qe7a1f

Visual Studio 2008 SP1's ADO.NET Entity Framework has generated an Entity Model like this:


I have created some methods as follows:

    private void buttonAddPatient_Click(object sender, EventArgs e)
  {
  using (carease15test1Entities context = new carease15test1Entities())
  {
  long bnumber = Convert.ToInt32(textBoxToBed.Text);
  long rnumber = Convert.ToInt32(textBoxOfRoom.Text);
 
  long bid = (from b in context.bed
  where b.bnumber == bnumber
  select b.bid).First();
 
  long rid = (from r in context.room
  where r.rnumber == rnumber
  select r.rid).First();
 
  // Create a new bed, and input its details.
  patient p = new patient();
  p.pname = textBoxPatient.Text;
  p.Bed_bid = bid;
  p.bedReference.EntityKey = new EntityKey("carease15test1Entities.bed", "bid", bid);
  p.Bed_Room_rid = rid;
  p.bed.roomReference.EntityKey = new EntityKey("carease15test1Entities.room", "rid", rid);
 
  context.AddTopatient(p);
  try
  {
  context.SaveChanges();
  }
  catch (OptimisticConcurrencyException ex)
  {
  // Resolve the concurrency conflict by refreshing the // object context before re-saving changes.
  context.Refresh(System.Data.Objects.RefreshMode.ClientWins, p);
  // Save changes.
  context.SaveChanges();
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message);
  }
  }

Everything works perfectly except for
p.bed.roomReference.EntityKey = new EntityKey("carease15test1Entities.room", "rid", rid);
in the method private void buttonAddPatient_Click(object sender, EventArgs e).
It turns out a NullRefenceException saying "Object reference not set to an instance of an object."

Here is my project files.
http://www.mediafire.com/?w3rjjbxbxw6wacv

Could anyone give me some help?  
Thank you so much. 


Attachment: carease15test1.zip

Answers (1)