Сопоставление Split Entity, дающее неожиданные результаты с базой данных oracle

В настоящее время я использую следующее сопоставление для сопоставления разделенного объекта и дает неожиданные результаты, которые он пытается сопоставить с таблицей.

открытый класс TestResultMap: EntityTypeConfiguration {

public TestResultMap()
{
    #region Property => Column Mapping 




    //test table
    Property(e => e.Id)
        .HasColumnName("TEST_NUMBER");

    Property(e => e.Analysis)
        .HasColumnName("ANALYSIS");

    Property(e => e.ComponentList)
        .HasColumnName("COMPONENT_LIST");

    Property(e => e.Status)
        .HasColumnName("STATUS");

    //result table
    Property(e => e.Maximum)
        .HasColumnName("MAXIMUM");

    Property(e => e.Minimum)
        .HasColumnName("MINIMUM");

    Property(e => e.OutOfRange)
        .HasColumnName("OUT_OF_RANGE");

    Property(e => e.Name)
        .HasColumnName("NAME");

    Property(e => e.Text)
        .HasColumnName("TEXT");

    Property(e => e.Typical)
        .HasColumnName("TYPICAL");

    Property(e => e.Units)
        .HasColumnName("UNITS"); 



    #endregion
    #region Split Entity Mapping 
    Map(m =>
            {
                m.Properties(t => new
                {
                    t.Id,
                    t.ComponentList,
                    t.Analysis,
                    t.Status
                });
                m.ToTable("TEST", Settings.Default.DbSchema);
            });
            Map(m =>
            {
                m.Properties(t => new
                {
                    t.Name,
                    t.Text,
                    t.Units,
                    t.OutOfRange,
                    t.Minimum,
                    t.Maximum
                });



                m.ToTable("RESULT", Settings.Default.DbSchema);
            }); 




    #endregion
    #region Key & Relationship Mapping
    HasKey(e => e.Id);


    #endregion
}

}

который производит следующий sql

-       TestResults {SELECT 

    1 AS "C1", 
     CAST( "Extent1"."TEST_NUMBER" AS number(9,0)) AS "C2", 
    "Extent2"."STATUS" AS "STATUS", 
    "Extent2"."ANALYSIS" AS "ANALYSIS", 
    "Extent2"."COMPONENT_LIST" AS "COMPONENT_LIST", 
    "Extent3"."NAME" AS "NAME", 
    "Extent3"."TEXT" AS "TEXT", 
    "Extent3"."UNITS" AS "UNITS", 
    "Extent3"."OUT_OF_RANGE" AS "OUT_OF_RANGE", 
    "Extent3"."MINIMUM" AS "MINIMUM", 
    "Extent3"."MAXIMUM" AS "MAXIMUM", 
    "Extent1"."TYPICAL" AS "TYPICAL", 
     CAST( "Extent2"."TestedSample_Id" AS number(9,0)) AS "C3", 
    "Extent2"."InstrumentUsed_Identifier" AS "InstrumentUsed_Identifier"
    FROM   "dbo"."TestResult11" "Extent1"
    INNER JOIN "SM2011"."TEST" "Extent2" ON ( CAST( "Extent1"."TEST_NUMBER" AS number(9,0))) = ( CAST( "Extent2"."TEST_NUMBER" AS number(9,0)))
    INNER JOIN "SM2011"."RESULT" "Extent3" ON ( CAST( "Extent1"."TEST_NUMBER" AS number(9,0))) = ( CAST( "Extent3"."TEST_NUMBER" AS number(9,0)))}  System.Linq.IQueryable<Lanxess.Data.Models.TestResult> {System.Data.Entity.Infrastructure.DbQuery<Lanxess.Data.Models.TestResult>}

и выдает ошибку, что таблица для TestResult11 не существует, чего я и ожидал, потому что она не существует, на самом деле она пытается использовать схему dbo mssql, и я использую базу данных oracle, остальные мои сопоставления работают нормально и сопоставляются с правильными схемами столбцов и таблицами только это вызывает у меня проблемы

мне нужно добавить дополнительное сопоставление, чтобы добиться этого с помощью оракула, или я неправильно сопоставляю это


person Chris McGrath    schedule 20.07.2011    source источник
comment
обновлен с классом и всеми активными сопоставлениями   -  person Chris McGrath    schedule 20.07.2011


Ответы (1)


Закрытие, поскольку проблема заключалась в том, что это не было отношение 1: 1, поскольку все было вызвано несколькими записями, появляющимися в сопоставлении, вызывающими исключение

person Chris McGrath    schedule 03.08.2011