Avatar billede tjakobsen Nybegynder
23. april 2008 - 14:51 Der er 6 kommentarer

LINQ one-to-one association

Hej Eksperter.

Jeg har forsøgt at lave en one-to-one association mellem to tabeller:

KMD_Apps
- AppID (PK, unique)
- FK_APPNAMEID
- CustID
- ContractID

LU_APPNAME
- PK_APPNAMEID (PK, unique)
- APPNAME


Jeg har oprettet to klasser og mappings:


[Table(Name = "KMD_Apps")]
public class Application
{
    [Column(Name = "AppID", IsPrimaryKey = true)]
    public int ID { get; set; }

    [Column(Name = "FK_APPNAMEID")]
    public int FKAppNameID { get; set; }

    [Column]
    public int CustID { get; set; }

    [Column]
    public int ContractID { get; set; }

    [Association(Name = "Application_AppName", ThisKey = "FKAppNameID", OtherKey = "PKAppNameID", IsForeignKey = true)]
    public EntityRef<AppName> Name { get; set; }
}




[Table(Name = "LU_APPNAME")]
public class AppName
{
    [Column(Name = "PK_APPNAMEID", IsPrimaryKey = true)]
    public int PKAppNameID { get; set; }

    [Column(Name = "APPNAME")]
    public string Name { get; set; }

    [Association(Name = "Application_AppName", ThisKey = "PKAppNameID", OtherKey = "FKAppNameID", IsUnique = true, IsForeignKey = false)]
    public EntityRef<Application> App { get; set; }
}


Hvilket giver følgende fejl:
Could not find key member 'PKAppNameID' of key 'PKAppNameID' on type 'EntityRef`1'. The key may be wrong or the field or property on 'EntityRef`1' has changed names.

Har jeg misforstået noget her?
200 points til den hurtigste løsning, da jeg står og skal bruge det asap.
Avatar billede aaberg Nybegynder
23. april 2008 - 15:41 #1
Prøv at ændre din foreign key til at referere til "PK_APPNAMEID" i stedet for "PKAppNameID".
Avatar billede aaberg Nybegynder
23. april 2008 - 15:46 #2
Og det samme med "FKAppNameID" -> "FK_APPNAMEID".

Jeg har ikke selv arbejdet noget særligt med LINQ, men det giver vel mening at det er navnet på kolonnerne med skal referere til, og ikke navnet på propertien, eller?
Avatar billede tjakobsen Nybegynder
24. april 2008 - 19:32 #3
Hej aaberg80.

Beklager jeg ikke har svaret dig tidligere, men jeg endte med at "løse" problemet ved at bruge LINQ to SQL designeren i Visual Studio.
Avatar billede tjakobsen Nybegynder
24. april 2008 - 20:17 #4
Men smid et svar hvis du gerne vil have points :)
Umiddelbart tror jeg ikke dit svar er løsningen, men jeg har ikke lige tid til at teste det.
Avatar billede aaberg Nybegynder
24. april 2008 - 20:58 #5
Behold bare de points! Jeg har jo ikke hjulpet med noget. Jeg har heller ingen anelse om det jeg skrev er rigtigt, det var bare min første indskydelse :-)
Avatar billede delphi Nybegynder
07. januar 2010 - 14:18 #6
lukkes?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester