1、使用Code First时,出现“The model backing the ‘xxxxxx’ context has changed since the database was created. Consider using Code First Migrations to update the database ?”
实体的数据类型与数据库类型不一致。如Oracle的Varchar2类型需要设置为this.Property(u => u.字属性名).HasColumnName(“字段名”).IsUnicode(false).HasMaxLength(字段长度),需要注意。
2、数据库有数据,出现查询结果返回空,当使用了Database.SetInitializer(new DropCreateDatabaseAlways()),可以查看数据库是否有新创建的表。当数据库字段与实体属性的数据不一致时,EF会创建新表覆盖掉原来的表结构。
Oracle与EntityFramework特别注意字段名与实体属性名称与类型。
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
替换成
<defaultConnectionFactory
type="Oracle.ManagedDataAccess.EntityFramework.OracleConnectionFactory, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>