mapping di più tabelle a una singola class di entity framework nel framework di quadro

Prima che questo sia contrassegnato come duplicato, ho controllato gli altri post correlati e non rispondono alla mia domanda.

Sto lavorando su un database precedente che ha 2 tabelle che hanno una relazione 1: 1. Attualmente, ho un tipo (1Test: 1Result) per ciascuna di queste tabelle definite Vorrei unire queste tabelle particolari in una singola class.

I tipi attuali hanno questo aspetto

public class Result { public string Id { get; set; } public string Name { get; set; } public string Text { get; set; } public string Units { get; set; } public bool OutOfRange { get; set; } public string Status { get; set; } public string Minimum { get; set; } public string Maximum { get; set; } public virtual Instrument InstrumentUsed { get; set; } public virtual Test ForTest { get; set; } } public class Test { public int Id { get; set; } public string Status { get; set; } public string Analysis { get; set; } public string ComponentList { get; set; } public virtual Sample ForSample { get; set; } public virtual Result TestResult { get; set; } } 

Preferirei che assomigliassero a questo

 public class TestResult { public int Id { get; set; } public string Status { get; set; } public string Analysis { get; set; } public string ComponentList { get; set; } public string TestName { get; set; } public string Text { get; set; } public string Units { get; set; } public bool OutOfRange { get; set; } public string Status { get; set; } public string Minimum { get; set; } public string Maximum { get; set; } public virtual Instrument InstrumentUsed { get; set; } } 

Attualmente sto usando l’API fluente per mapparli nel nostro database Oracle precedente.

Quale sarebbe il miglior metodo per combinarli in una singola class? Si noti che questo è un database legacy. La modifica delle tabelle non è un’opzione e la creazione di viste non è una soluzione valida a questo punto del progetto.

È ansible utilizzare Entity Splitting per ottenere questo risultato se si dispone della stessa chiave primaria in entrambe le tabelle.

  modelBuilder.Entity() .Map(m => { m.Properties(t => new { t.Name, t.Text, t.Units /*other props*/ }); m.ToTable("Result"); }) .Map(m => { m.Properties(t => new { t.Status, t.Analysis /*other props*/}); m.ToTable("Test"); }); 

Ecco un utile articolo