Jeden do wielu

Odpowiedz Nowy wątek
2015-01-20 20:44
Mały Szczur
0
 public class Customer
    {
        public int CustomerID { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
        public virtual ICollection<Question> Questions { get; set; }

    }
public class Question
    {

        public int QuestionID { get; set; }
        public string questiontext { get; set; }
        public int CustomerID { get; set; }//klucz obcy

  }

Mam takie dwie tabelki, z których wynika że jeden Klient może mieć wiele pytań. Wszystko gra, mogę dodawać pytania i klientów z poziomu wygenerowanego scaffoldingowo kodu. Natomiast nie wiem jak sprawić aby wyświetlało się pole "CustomerID" w klasie Question.
Po wygenerowaniu widoku widać tylko jedno pole "questiontext". Chciałbym mieć możliwość wprowadzania tego z poziomu przeglądarki www a nie z poziomu bazy danych, bo tam nie ma problemu.

Bardzo prosze o pomoc

Pozostało 580 znaków

2015-01-20 21:09
0

Dodaj w Question

public Customer CustomerOwner {get;set;}

Pozostało 580 znaków

2015-01-20 22:03
Mały Szczur
0

Okej, spróbuję i dam znać.

Pozostało 580 znaków

2015-01-20 22:12
Mały Szczur
0

Ale czy zmienna CustomerOwner będzie miała jakiś związek z CustomerID? Chciałbym podczas dodawania pytania móc wprowadzić CustormerID istniejącego już użytkownika. CustomerID jest automatycznie inkrementowany wraz z dodaniem nowego usera, a tworząc nową zmienną CustomerOwner wydaje mi sie ze nie bedzie miala zadnego zwiazku z CustomerID. Dobrze myślę? Jak Ty to widzisz?

Pozostało 580 znaków

2015-01-20 23:02
0

Nie będziesz musiał dodawać żadnego CustomerId, będziesz robił tak:

var q = new Question();
q.QuestionText = "tekst";
q.CustomerOwner = db.Customers.Find(id);//albo tworzysz nowego Customer jak chcesz

Bo to Entity Framework jest tak?

edytowany 1x, ostatnio: dam1an, 2015-01-20 23:03

Pozostało 580 znaków

2015-01-20 23:41
Mały Szczur
0

Wiesz co Damian? Opiszę jeszcze raz, bo źle mnie zrozumiałeś :)

Chodzi o to że mam kilku userów zarejestrowanych.

CustomerID Username Password
1 zenek zenek123
2 arek arek123

I oni sobie siedzą w tabelce Customer

Następnie tabelka Questions

QuestionID questiontext CustomerID
1 Ktora godzina? 1
2 Jaki dzis dzien? 1
3 Czy jest zimno? 1
4 Jak dziala samochod? 2

Z tego wynika ze zenek ma 3 pytania ( na ktore kiedys bedzie musial odpowiedziec) a arek 1.

Idąc dalej: mam dwoch userów i chce miec mozliwosc dodawania dla nich pytan. W tej chwili gdy dodaje pytanie, nie moge wpisac wartosci do pola CustomerID, a chciałbym zeby po tym wlasnie było to identyfikowane. A jak juz dodaje pole CustomerID, to wpisana do niego wartosc nie zapisuje sie w bazie.

Chce zeby byly dwa pola: jedno Pytanie drugie CustomerID.
wpisane CustomerID ma byc tym samym, co przy zakladaniu konta dla nowego uzytkownika
rozumiesz?
tak to EF

Pozostało 580 znaków

2015-01-20 23:52

Tak rozumiem, za to ty ni w cholerę, zrób tak jak Ci mówię i będzie dobrze :P

Robiąc tak będziesz miał to co chcesz, tylko nie przypisujesz żadnych Id a sam obiekt.

Powiedzmy że chcesz dać Arkowi pytanie o ID=3

var user = db.Customers.First(c=> c.Username== "Arek");
var question = db.Questions.Find(3);
question.CustomerOwner = user;
db.SaveChanges();  
edytowany 1x, ostatnio: dam1an, 2015-01-20 23:52

Pozostało 580 znaków

2015-01-20 23:59
Mały Szczur
0

OOOKeeej, dzięki :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0