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

625
Views
API fluida: cómo usar HasComputedColumnSql con objetos de clave externa

Estoy usando un enfoque de código primero con Entity Framework Core y Fluent API y estoy tratando de crear una columna para una tabla que tiene un valor generado basado en otras columnas de esta tabla. Esta tabla también contiene claves externas, que me gustaría representar de manera diferente a su Id (por ejemplo, una columna llamada nombre).

Este es el código genérico de mi situación actualmente.

 public class Book { public int Id { get; set; } public string Title { get; set; } public int AuthorId { get; set; } public Author Author { get; set; } public string Display { get; set; } } public class Author { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public virtual ICollection<Book> Books { get; set; } }

Y OnModelCreating en mi DbContext se ve así:

 protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); // BOOK Definition modelBuilder.Entity<Book>(entity => { // Primary key entity.HasKey(p => p.Id); // Foreign key entity.HasOne(v => v.Author) .WithMany(v => v.Books) .HasForeignKey(v => v.AuthorId); // Properties entity.Property(p => p.Id).ValueGeneratedOnAdd(); entity.Properties(p => p.Display) .HasComputedColumnSql("SOME SQL QUERY HERE?"); // Other property definitions }); // AUTHOR Definition modelBuilder.Entity<Author>(entity => { // Primary key entity.HasKey(p => p.Id); // Properties entity.Property(p => p.Id).ValueGeneratedOnAdd(); // Other property definitions }); }

Desde este sitio web y otros, entiendo que puede usar consultas SQL en HasComputedColumnSql . Sin embargo, no estoy seguro de cómo abordaría la creación de este tipo de consulta para mi caso de uso.

TLDR;

¿Cómo puedo usar una clave externa en una consulta SQL para HasComputedColumnSql para establecer el valor calculado de una columna en un valor de columna de una tabla referenciada (referenciada por la clave externa)?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No puede hacer referencia a otra tabla, no es así como funcionan las columnas calculadas. Una forma es crear una función escalar y llamarla en su lugar. Por ejemplo:

 CREATE FUNCTION dbo.MySuperFunction (@value INT) RETURNS INT AS BEGIN -- do stuff with other tables RETURN @value*2 END

Y en tu código C#:

 entity.Properties(p => p.Display) .HasComputedColumnSql("dbo.MySuperFunction([AuthorId])");
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!