码迷,mamicode.com
首页 > 数据库 > 详细

Oracle学习 第27天 EF下的Schema

时间:2017-04-05 21:42:39      阅读:1685      评论:0      收藏:0      [点我收藏+]

标签:循环   net   row   复制   name   ota   反射   from   连接   

.net后台使用EF连接Oracle时,如果不显式指定Schema就会报错(找不到表),研究了下:

 

1、跟踪Oracle后台,EF的FirstOrDefault,转换出来的就是普通的SELECT * FROM XX WHERE ROWNUM = 1 ;复制出来可以执行,但EF里无法识别,因为没指定Schema

 

2、可以把EF的实体Table改为Schema.Table这种形式(没试过)

 

3、在实体类前面加上Schema,项目中是通过存储过程生成的,我加了个参数,用于判断是Oracle的话就生成这种形式

[Table("TableName", Schema = "SchemaName")]

 

4、如果要动态生成Schema,可以在DbModelBuilder中指定通用的Schema,如:modelBuilder.HasDefaultSchema("SchemaName");但只有EF6以上才可以用

 

5、EF6以下,要为每张表指定(可以用反射再循环处理),如:modelBuilder.Entity<TableName>().ToTable("TableName", "SchemaName");

Oracle学习 第27天 EF下的Schema

标签:循环   net   row   复制   name   ota   反射   from   连接   

原文地址:http://www.cnblogs.com/liuyouying/p/6670552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!