Я использую EF 4.3 и использую базу данных Oracle. Из-за того, как EF генерирует SQL для базы данных Oracle, а также из-за того, что EF 4.3 не позволяет добавлять пользовательские соглашения, мне приходится вручную указывать имена столбцов для каждого свойства ВСЕМИ ЗАГЛАВНЫМИ БУКВАМИ.
[Column("MYPROPERTY")]
public string MyProperty { get; set; }
Итак, что я могу сделать со свойствами, использующими сложные типы? У меня есть следующий сложный тип:
public class Minute {
public int Value { get; set; }
}
и следующий DbContext:
public class MyDbContext : DbContext {
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.ComplexType<Minutes>().Property(x => x.Value);
}
}
И моя сущность:
[Table("MYENTITY")]
public class MyEntity {
[Column("MYPROPERTY")]
public string MyProperty { get; set; }
[Column("MYMINUTES")] //this does nothing
public Minutes MyMinutes { get; set; }
}
В сгенерированном SQL свойство MyMinutes
сопоставляется с несуществующим "Extent1"."MyMinutes_Value"
... Я хотел "Extent1"."MYMINUTES"
.
Что мне здесь делать, кроме как биться головой о стол?