我有一个类似于Entity Framework 5.0 PostgreSQL(Npgsql)默认连接工厂的问题
我在app.config中声明了Npgsql:
<connectionStrings>
<add name="monDbContexte"
connectionString="Server=127.0.0.1;Port=5432;Database=ma_datab_db;User Id=postgres;Password=root;"
providerName="Npgsql" />
</connectionStrings>
<!-- le factory provider -->
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider"
invariant="Npgsql"
support="FF"
description=".Net Framework Data Provider for Postgresql Server"
type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我的上下文提供者类:
public class ContextDB: DbContext
{
public DbSet<Personne> Personnes { get; set; }
public ContextDB()
: base("monDbContexte")
{
}
}
Run Code Online (Sandbox Code Playgroud)
我的"Personne"课程:
[表( "personnes",模式= "公共")] public类Personne {[密钥] [列( "id_personne")] [显示(名称= "Identifiant")]公众诠释ID为{得到; 组; }
[Column("nom")]
[Display(Name = "Nom")]
[Required(ErrorMessage = "Merci de …Run Code Online (Sandbox Code Playgroud) 我需要访问User.Identity.Name我的Application_Start()
我将使用它来从我的DbContext获取数据
有可能做这样的事吗?我可以做得更好吗?
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
using (MyApp.ContextDB context = new MyApp.ContextDB())
{
var uid = context.SomeDBSet.Where(x => x.WinID == User.Identity.Name).FirstOrDefault();
Application["uid"] = uid ;
}
}
Run Code Online (Sandbox Code Playgroud)