1. 程式人生 > >EF Oracle Code First踩過的坑

EF Oracle Code First踩過的坑

16px oid 嚴格 sqlserver elb tin fff 名稱 數據庫表

一、生成的表用數據庫查詢工具,表名需要加上雙引號才可以查詢否則提示表或視圖不存在

  EF生成的數據庫表創建語句默認是帶雙引號和嚴格區分大小的,此時在定義的Mode手動指定映射的表名和列名,不能只指定表名不指定列名,否則會報ORA-00955: 名稱已由現有對象使用錯誤

  [Table("TEST")]
    public class Test
    {
        [Key]
        [Column("ID")]
        [StringLength(10)]
        public string ID { get; set; }

        [Column(
"NAME")] [StringLength(10)] public string Name { get; set; } }

二、Code First Oracle 提示Ora-01918:用戶‘dbo‘ 不存在

  從提示後者從打印生成的的SQL語句很容易看出,查詢的時候默認在表名稱加入了dbo.XXX,這是SqlServer數據庫的表前綴,所有這裏需要修改默認的schame

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
 {
   modelBuilder.HasDefaultSchema(
"大寫的oracle用戶名"); }

EF Oracle Code First踩過的坑