EF Oracle Code First踩過的坑
阿新 • • 發佈:2018-08-06
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踩過的坑