0

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:

http://postimage.org/image/lulmehljv/

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.

2
Contributors
1
Reply
2
Views
5 Years
Discussion Span
Last Post by lolafuertes
0

What happens is the bed number or roon numbers does no exists?

The bid or rid will be not given the right value; thus, using them will rely on a null reference.

Please test the returned value before using it.

Hope this helps

Hope this helps

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.