将连接字符串发送到ApplicationDBContext



我已经自定义了ApplicationDBContext类,以便通过其构造函数接收连接字符串。当直接调用时,它可以正常连接到数据库,但当通过应用程序调用时。CreatePerOwnContext我无法调用它。我的类定义如下:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(string databaseConnection)
: base(databaseConnection, throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create(string databaseConnection)
{
return new ApplicationDbContext(databaseConnection);
}
}

问题是当Startup.Auth.cs在下面的行中调用它时。

app.CreatePerOwinContext(ApplicationDbContext.Create);

create方法也需要一个连接字符串,但以下方法不起作用

app.CreatePerOwinContext(ApplicationDbContext.Create(connectionString));

它会产生以下错误:

Error   1   The type arguments for method 'Owin.AppBuilderExtensions.CreatePerOwinContext<T>(Owin.IAppBuilder, System.Func<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

向ApplicationDbContext类发送连接字符串以便Owin上下文可以引用它的正确语法是什么?

连接字符串是正确的,但为了完整起见,下面是设置它的代码。

string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

请查看您正在使用的方法的声明:

public static IAppBuilder CreatePerOwinContext<T>(
this IAppBuilder app,
Func<T> createCallback) where T : class, IDisposable

它需要一个类型为Func<T>的参数。

因此,您需要将代码更改为:

app.CreatePerOwinContext(() => ApplicationDbContext.Create(connectionString));

相关内容

  • 没有找到相关文章

最新更新