需求是在DbContext可能調用的每個Oracle會話開始時使用DbContext(DatabaseFirst模式中的EF 5)執行sql查詢。
把它放在構造函數中會產生不一致的結果,因爲有些情況下這個sql查詢根本沒有運行。在使用DbContext的Oracle會話開始時運行sql查詢
設置是在DBFirst模式下使用ODP.NET v12託管驅動程序連接到Oracle10gR2的EF5。
public partial class MyContext : DbContext
{
public MyContext(string connectionString)
: base(connectionString)
{
Database.ExecuteSqlCommand(Constants.SqlQuery);
}
}
我通過將連接字符串實例化的背景下,因爲連接字符串需要是動態的,如下所示:
using(var context = new MyContext(GetConnectionString()))
{
...
...
context.SaveChanges();
}
有沒有一種方法,以確保此查詢總是每當運行Oracle會話創建?
我不知道這是否會工作,如果有連接池,並且這種改變的行爲當前連接。 –
它適用於我的連接池應用程序,我需要在每次建立連接時啓用某些Oracle角色。 – GriffeyDog
好的,很酷。您是否在使用Oracle Row Level Security? –