Diciamo che ho due classi,
public class UserBio {
[Key]
public string Id { get; set; }
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Last Name")]
public string LastName { get; set; }
}
public class UserPosts
{
[Key]
public int PostId { get; set; }
public string CreatedBy { get; set; }
public string Description { get; set; }
}
la mia domanda è, come faccio a mappare CreatedBy da UserPosts alla proprietà Id in UserBio? So che un modo è quello di sostituire il Datatype di CreatedBy con UserBio. Ma a causa di alcuni problemi, non sembra una buona idea. Voglio inserire CreatedBy come stringa e durante il recupero, UserPost contiene anche UserBio dell'utente. Potresti aiutarmi con questo? Devo usare la Fluent api per questo? O posso raggiungere con le annotazioni di dati?
public class UserPosts
{
[Key]
public int PostId { get; set; }
[ForeignKey("User")]
public string CreatedBy { get; set; }
public virtual UserBio User { get; set; }
public string Description { get; set; }
}
Sto usando il Designer per creare le mie classi da un database, ma credo che funzioni per la tua situazione. Quello che credo tu debba fare è creare una proprietà virtuale pubblica nella classe UserPosts di tipo UtenteBio.
public virtual UserBio users { get; set; }
quando si accede a UserPost, è possibile fare riferimento agli utenti che hanno creato il post. Quindi eliminerei la proprietà createdBy in quanto non sarà più necessaria.