我正在开发一个项目,将使用Entity Framework 6.1.1和Oracle 11g数据库后端。我将访问跨多个模式的表,其中一些具有跨模式的外键关系(查找表、企业数据等)。传统上,我们使用同义词来公开这些跨模式表格以供特定登录使用。我的问题是...如何在EF6中使用代码优先映射映射这些同义词?我没有问题映射到单个模式内部的表,但这当然不足以满足我的需求,因为我的表穿越了几个模式。到目前为止,我的代码优先映射未能识别同义词。有人能否做到对Oracle同义词进行代码优先映射?
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("MY_SCHEMA_NAME");
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema(string.Empty);
}
FROM "MY_TABLE"
而不是FROM "dbo"."MY_TABLE"
或FROM "MY_SCHEMA_NAME"."MY_TABLE"
的SQL。modelBuilder.Entity<DATA>().ToTable("DATA", "schema");
或者装饰类:
[Table("DATA", Schema="SCHEMA"]
public class DATA{..}