EntityFrameWork使用过程问题总结

时间:2021-02-28 07:28:05

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();
         }

 }