Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
Elementos proxy en Entity Framwork Core

¿Es posible crear como elemento proxy en EF Core?

Por ejemplo, en la base de datos existe el elemento con el id 1, que tiene el nombre Example . El segundo elemento con id 2 no tiene nombre (es nulo), pero tiene una referencia al elemento 1 ("id_replace"). En este caso, me gustaría que el nombre devuelto por el artículo 2 sea "Ejemplo" como el artículo 1. Y también la cita "Incluye" para las referencias del artículo 1.

La razón por la que tengo una idea tan extraña es que necesito haber vinculado los elementos, y si el elemento 1 cambia, los cambios realizados también se muestran en el elemento 2.

Registros de ejemplo en la base de datos

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Seguro que puede. Suponiendo que su clase es:

 public class YourClass { public int id { get; set; } public string name { get; set; } public int? id_replace { get; set; } }

En su clase, debe tener las propiedades de referencia de una a muchas:

 public YourClass parent { get; set; } public IList<YourClass> children { get; set; }

Luego, en su clase DbContext, en la función de anulación OnModelCreating, debe tener una relación establecida en la API fluida que indique que id_replace es una clave externa autorreferencial:

 modelBuilder.Entity<YourClass>(entity => { entity.HasOne(x => x.parent) .WithMany(x => x.children) .HasForeignKey(x => x.id_replace) .OnDelete(DeleteBehavior.SetNull); });

Después de hacer eso (y migrar), tiene las propiedades de navegación necesarias para poder agregar propiedades calculadas que no representan nada en la base de datos. Entonces tu clase puede tener la propiedad:

 public int alt_name => name??$"\"{parent.name}\"";

Eventualmente, su clase se verá así:

 public class YourClass { public int id { get; set; } public string name { get; set; } public int? id_replace { get; set; } public YourClass parent { get; set; } public IList<YourClass> children { get; set; } public int alt_name => name??$"\"{parent.name}\""; }

De esa manera, puede descartar la propiedad de name y simplemente llamar a la propiedad alt_name . Incluso puede establecer la propiedad del name como privada o cambiar los nombres para evitar confusiones.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!