【问题标题】:Send connection string to ApplicationDBContext将连接字符串发送到 ApplicationDBContext
【发布时间】: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上做一个简单的谷歌搜索并寻找例子..如果你要粘贴代码..请显示所有相关代码..我们不介意读者..还在 MSDN createperowincontext 上单独进行谷歌搜索
  • @ThreeValueLogic 您是否尝试过按照错误说明执行操作并明确指定类型参数?就像 Milen Pavlov 在this question 中的回答一样。
  • “你为什么不在下面的 ApplicationDbContext.Create 上做一个简单的谷歌搜索并查找示例。”我做到了。我找不到将参数传递给创建的单个。

标签: c# asp.net-mvc-5 asp.net-identity owin


【解决方案1】:

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

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

它需要 Func&lt;T&gt; 类型的参数。

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

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

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 2014-04-29
    相关资源
    最近更新 更多