Avant que cela ne soit marqué comme doublon, j'ai vérifié les autres messages associés et ils ne répondent pas à ma question.
Je travaille sur une base de données héritée qui a 2 tables qui ont une relation 1: 1. Actuellement, j'ai un type (1Test: 1Result) pour chacune de ces tables définies. Je voudrais fusionner ces tables particulières en une seule classe.
Les types actuels ressemblent à ceci
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; }
}
Je préférerais qu'ils ressemblent à ça
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; }
}
J'utilise actuellement l'API couramment pour les mapper à notre base de données Oracle héritée.
Quelle serait la meilleure méthode pour les combiner en une seule classe? Veuillez noter qu'il s'agit d'une ancienne base de données. La modification des tables n'est pas une option et la création de vues n'est pas une solution viable à ce stade du projet.
Vous pouvez utiliser le fractionnement d'entité pour y parvenir si vous avez la même clé primaire dans les deux tables.
modelBuilder.Entity<TestResult>()
.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");
});
Voici un utile article