1、记录上次遇到个一个问题。
(1)、vs2013中的EntityFramework不能识别odp11,所以在用ef的时候 ,要换vs2012
(2)、opd12不能识别Oracle 9i(所以这个项目就是vs2012 odp11 oracle 9i)【ODTwithODAC1120320_32bit】
(3)、vs2012不能对mysql-connector-net-6.9.6进行识别,所以要换到vs2013去进行识别配置。
(4)、EF是用primary key 进行构建的,所以咋没有主键表是没有办法进行构建的。所以这里只能使用sql语句进行对数据库的操作。
(5)、不知道为什么,ef对数据库的存储过程可以识别,但是对数据库的函数不能进行识别。
2、这边有一个扩展:用于sql语句的操作。
(1)、 public partial class DB_EntitiesExtens : ObjectContext
{
public DB_EntitiesExtens()
: base("name=Entities")
{
}
}
(2)
public static class EntitiesExtens
{
var bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic;
var factoryProperty = typeof(EntityConnection).GetProperty("StoreProviderFactory", bindingFlags);
var factory = factoryProperty.GetValue(context.Connection, null) as DbProviderFactory;
var connStr = (context.Connection as EntityConnection).StoreConnection.ConnectionString;
using (var conn = factory.CreateConnection())
{
conn.ConnectionString = connStr;
conn.Open();
var cmd = factory.CreateCommand();
cmd.Connection = conn;
cmd.CommandText = operString;
cmd.ExecuteNonQuery();
}
}