Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Saving objects with Cross-reference

Saving objects with Cross-reference

Scheduled Pinned Locked Moved C#
csharphelplinqsalesjson
24 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Lost User

    larsp777 wrote:

    Or could it be that the list I am trying to save is a empty list even if I use the same name?

    Looks that way; a Kund holds a list of books. When you serialize the Kund, you write the PersonNr and the Name - but not the list. Again, I'd recommend not saving a list of books, but numbers that are linked to a book.

    Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

    L Offline
    L Offline
    larsp777
    wrote on last edited by
    #15

    Eddy Vluggen wrote:

    Again, I'd recommend not saving a list of books, but numbers that are linked to a book.

    Ok, Think I missunderstood you some. But I still have to save the objects somehow so I'm not really sure how that solves anything. Please explain. Edit: Realised that you probably ment the list saved in customer, not the list that holds all the books. That could be a way of avoiding cross-reference I guess.

    L 1 Reply Last reply
    0
    • L larsp777

      Eddy Vluggen wrote:

      Again, I'd recommend not saving a list of books, but numbers that are linked to a book.

      Ok, Think I missunderstood you some. But I still have to save the objects somehow so I'm not really sure how that solves anything. Please explain. Edit: Realised that you probably ment the list saved in customer, not the list that holds all the books. That could be a way of avoiding cross-reference I guess.

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #16

      larsp777 wrote:

      But I still have to save the objects somehow so I'm not really sure how that solves anything. Please explain.

      It'd be a translation from a database-design. Right now, each book would be stored in a Kund? That means that you'd be "moving" the book-data when the book moves between different Kunds; it'd be saved in a different list. If you had three lists, life could become easier; one list to hold a collection of Kunds, one to hold the Books, and one to hold a pointer to Kund/Book combinations. In SQL, it'd be something like below;

      CREATE TABLE Customer
      (
      Id INT IDENTITY(1,1)
      PRIMARY KEY (Id)
      )

      CREATE TABLE Book
      (
      Id INT IDENTITY(1,1)
      PRIMARY KEY (Id)
      )

      CREATE TABLE LentItems
      (
      CustomerId INT,
      BookId INT
      FOREIGN KEY (CustomerId) REFERENCES Book(Id),
      FOREIGN KEY (BookId) REFERENCES Book(Id)
      )

      Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

      L 1 Reply Last reply
      0
      • L Lost User

        larsp777 wrote:

        But I still have to save the objects somehow so I'm not really sure how that solves anything. Please explain.

        It'd be a translation from a database-design. Right now, each book would be stored in a Kund? That means that you'd be "moving" the book-data when the book moves between different Kunds; it'd be saved in a different list. If you had three lists, life could become easier; one list to hold a collection of Kunds, one to hold the Books, and one to hold a pointer to Kund/Book combinations. In SQL, it'd be something like below;

        CREATE TABLE Customer
        (
        Id INT IDENTITY(1,1)
        PRIMARY KEY (Id)
        )

        CREATE TABLE Book
        (
        Id INT IDENTITY(1,1)
        PRIMARY KEY (Id)
        )

        CREATE TABLE LentItems
        (
        CustomerId INT,
        BookId INT
        FOREIGN KEY (CustomerId) REFERENCES Book(Id),
        FOREIGN KEY (BookId) REFERENCES Book(Id)
        )

        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

        L Offline
        L Offline
        larsp777
        wrote on last edited by
        #17

        Eddy Vluggen wrote:

        Right now, each book would be stored in a Kund? That means that you'd be "moving" the book-data when the book moves between different Kunds; it'd be saved in a different list.

        This is how it works (as far as I know): Every book is stored in a list BookList and every customer is saved in CustomerList; Every customer (Kund) has it´s own list loan where references are saved to books that are borrowed by that customer. Again, this was a project I made in Java for a University-course a while back. Been trying to transfer it to C#. Every book (Bok in Swedish) has a reference to the customer who borrowed the book, so it "knows" who borrowed it. The savingpart worked fine in Java but maybe works differently in C#.

        L 1 Reply Last reply
        0
        • L larsp777

          Eddy Vluggen wrote:

          Right now, each book would be stored in a Kund? That means that you'd be "moving" the book-data when the book moves between different Kunds; it'd be saved in a different list.

          This is how it works (as far as I know): Every book is stored in a list BookList and every customer is saved in CustomerList; Every customer (Kund) has it´s own list loan where references are saved to books that are borrowed by that customer. Again, this was a project I made in Java for a University-course a while back. Been trying to transfer it to C#. Every book (Bok in Swedish) has a reference to the customer who borrowed the book, so it "knows" who borrowed it. The savingpart worked fine in Java but maybe works differently in C#.

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #18

          larsp777 wrote:

          Again, this was a project I made in Java for a University-course a while back. Been trying to transfer it to C#.
          Every book (Bok in Swedish) has a reference to the customer who borrowed the book, so it "knows" who borrowed it. The savingpart worked fine in Java but maybe works differently in C#.

          Those references are pointers; I don't think that the XmlSerializer is going to save the private loan-list on it's own.

          Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

          L 1 Reply Last reply
          0
          • L Lost User

            larsp777 wrote:

            Again, this was a project I made in Java for a University-course a while back. Been trying to transfer it to C#.
            Every book (Bok in Swedish) has a reference to the customer who borrowed the book, so it "knows" who borrowed it. The savingpart worked fine in Java but maybe works differently in C#.

            Those references are pointers; I don't think that the XmlSerializer is going to save the private loan-list on it's own.

            Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

            L Offline
            L Offline
            larsp777
            wrote on last edited by
            #19

            Eddy Vluggen wrote:

            Those references are pointers; I don't think that the XmlSerializer is going to save the private loan-list on it's own.

            Yes, I know they are pointers. That is why you get cross-reference, isn´t it? Still, you could be right in that this is the problem. Edit: I think this was one thing I considered when I was trying to find the answer. Saving a list of books was no problem.

            L 1 Reply Last reply
            0
            • L larsp777

              Eddy Vluggen wrote:

              Those references are pointers; I don't think that the XmlSerializer is going to save the private loan-list on it's own.

              Yes, I know they are pointers. That is why you get cross-reference, isn´t it? Still, you could be right in that this is the problem. Edit: I think this was one thing I considered when I was trying to find the answer. Saving a list of books was no problem.

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #20

              Does the original Java-generated have it's loan-list in the XML?

              Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

              L 1 Reply Last reply
              0
              • L Lost User

                Does the original Java-generated have it's loan-list in the XML?

                Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                L Offline
                L Offline
                larsp777
                wrote on last edited by
                #21

                No, I don't think I did it in XML. I saved the objects in a binary format.

                L 1 Reply Last reply
                0
                • L larsp777

                  No, I don't think I did it in XML. I saved the objects in a binary format.

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #22

                  larsp777 wrote:

                  No, I don't think I did it in XML. I saved the objects in a binary format.

                  :) If you save a collection using the binary-formatter, then it'll also save the pointers. If you use XML, you'll have to save the relations yourself, or keep a list.

                  Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                  L 1 Reply Last reply
                  0
                  • L Lost User

                    larsp777 wrote:

                    No, I don't think I did it in XML. I saved the objects in a binary format.

                    :) If you save a collection using the binary-formatter, then it'll also save the pointers. If you use XML, you'll have to save the relations yourself, or keep a list.

                    Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                    L Offline
                    L Offline
                    larsp777
                    wrote on last edited by
                    #23

                    So...what do you suggest I do...

                    L 1 Reply Last reply
                    0
                    • L larsp777

                      So...what do you suggest I do...

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #24

                      Use the binaryformatter[^] to store it as binary data. It's that, or doing some extra work to have it correctly in XML.

                      Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups