[ stevan314 @ 16.04.2013. 11:48 ] @
Koristim Linq to SQL kako bih povezao bazu sa mojom skolskom WPF aplikacijom i pravi mi problem. U jednom prozoru mi radi kako treba ali u drugom prozoru mi pokazuje delimicne podatke jer ne znam kako se spajaju dve tabele u linq to sql.


Hocu da spojim:

Osoba
IdOsobe (int)
jmbg (nvarchar13)
Ime (varchar50)
Prezime varchar50)
DatumRodjenja date
DatumUclanjenja date
IdKontaktPodaci (int)
IdUloga (int)



sa


KontaktPodaci

IdKontaktPodaci (int)
Ulica (varchar50)
Broj (varchar10)
Mesto (varchar50)
Telefon (varchar50)
email (varchar50)


Hvala unapred.



[ mmix @ 16.04.2013. 11:54 ] @
Da li si napravio model? I da li ove dve tabele u bazi imaju relaciju? Ako imaju ako si geenrisao model, trebao bi da vidis link izmedju te dve tabele u mdoelu, preko tog linka mozes da pristupas child/parent objektima iz onog drugog a sam L2S ce napraviti skriptu da to sve ucita.

[ stevan314 @ 16.04.2013. 12:12 ] @
Imaju relaciju, u tabeli KontaktPodaci primarni kljuc je IdKontaktPodaci a u tabeli Osoba isto imam polje sa IdKontaktPodaci.



Krenuo sam ovako:


Code:
var osoba=(from o in conn.Osobas
                           join kp in conn.KontaktPodacis
                               on o.IdKontaktPodaci equals kp.IdKontaktPodaci
                           select new(o.IdOsobe,o.jmbg,o.Ime,o.Prezime,o.DatumRodjenja)).ToList(); 



Ali ipak nisam dobio ono sto sam trazio plus mi jos izbacuje gresku

Error 1 Type expected C:\Users\Stevan\Documents\Visual Studio 2010\Projects\Videoteka\Projekat\pregledClanova.xaml.cs 45 38 Projekat
[ mmix @ 16.04.2013. 13:29 ] @
nema potrebe da koristis join ako ti model vec ima relaciju. Onda u oba objekta imas tzv navigacione propertije (vidis inh na dnu svakog objekta u dijagramu).

Btw, u tvom izrazu uopte ne moras da radis join jer ne koristis nista iz child tabele. Drugo, inicijalizacija objekta ne ide u () vec u {}, npr. new { o.IdOsobe,....}

[ stevan314 @ 16.04.2013. 14:00 ] @
Jel postoji nacin da postavim print screen dijagrama ? Nije mi jasno gde se nalazi properti.


UPDATE:

Evo postavljam sliku







UPDATE BROJ 2


Resio sam ipak sam nekako, postavljam resenje ako bude nekom ikad trebao primer za spajanje:




Code:
 var osoba = from o in conn.Osobas
                        join k in conn.KontaktPodacis on o.IdOsobe equals k.IdKontaktPodaci
                        select new {o.IdOsobe,o.jmbg,o.Ime,o.Prezime,o.DatumRodjenja,k.Ulica,k.Broj,k.Mesto,k.Telefon,k.email,o.DatumUclanjenja };


[Ovu poruku je menjao stevan314 dana 16.04.2013. u 15:25 GMT+1]
[ plague @ 16.04.2013. 15:09 ] @
Kada kliknes na vezu izmedju tabela imas Child Property i Parent Property gde mozes videti kako pristupas kolekciji ili zapisu respektivno za koji je record vezan.

Npr imas tabele Users i Roles.
Klikom na relaciju dobijas Child Property pod imenom Users i Parent Property pod imenom Role.

Dalje te relacije mozes koristiti na sledeci nacin:

Code (csharp):


//Pretpostavka je da u Users postoji FK ka Roles

//prvi primer
User korisnik = db.First(u => u.UserId == 1);
Role ulogaKorisnika = korisnik.Role; //ovde se koristi Parent Property

//drugi primer
Role uloga = db.First(r => r.Name == "Admin");
List<User> usersThatAreAdmins = uloga.Users; //koristi se Child Property

//naravno treba provera da li ima uopste recorda itd, mrzi me
 
[ _NEShA_ @ 19.04.2013. 14:16 ] @
Stevane, ovo što si postavio je slika dijagrama baze tj fizički model, a MMX govori konceptualnom modelu, odnosno edmx fajlu. Kad edmx fajl otvoriš u VS, jasno možeš da vidiš koji property-i su "obični" a koji su navigacioni.