【发布时间】:2015-07-02 07:43:45
【问题描述】:
我已经自定义 ApplicationDBContext 类以通过其构造函数接收连接字符串。直接调用时可以正常连接到数据库,但是通过 app.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;
【问题讨论】:
-
当您不显示如何分配连接字符串的值时很难回答.. 您需要显示所有相关代码.. 还要使用调试器..
-
连接字符串正确。我可以使用类构造函数很好地连接到数据库。我失败的地方是通过 app.CreatePerOwnContext 调用该方法。
-
这个错误告诉你到底是什么问题..你为什么不在下面的
ApplicationDbContext.Create上做一个简单的谷歌搜索并寻找例子..如果你要粘贴代码..请显示所有相关代码..我们不介意读者..还在 MSDNcreateperowincontext上单独进行谷歌搜索 -
@ThreeValueLogic 您是否尝试过按照错误说明执行操作并明确指定类型参数?就像 Milen Pavlov 在this question 中的回答一样。
-
“你为什么不在下面的 ApplicationDbContext.Create 上做一个简单的谷歌搜索并查找示例。”我做到了。我找不到将参数传递给创建的单个。
标签: c# asp.net-mvc-5 asp.net-identity owin