gpt4 book ai didi

c# - 使用.net core时应该如何存储 Entity Framework 6连接字符串

转载 作者:太空宇宙 更新时间:2023-11-03 15:11:25 27 4
gpt4 key购买 nike

我有一个 .net 核心 REST api 项目,它调用一个使用 Entity Framework 的 .net 4.6 程序集。我还有一个调用该程序集的测试项目。提供连接字符串的旧方法是让 App 或 web.Config 中的连接字符串看起来像

<connectionStrings>
<add name="MyDbContext" connectionString="data source=(LocalDB)\MSSQLLocalDB;AttachDBFilename=|DataDirectory|\TestDB.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>

你的 dbContext 做了

public MyDbContext(): base("name=MyDbContext")

我假设我必须将信息放入我的 appsettings.Json 中

"ConnectionStrings": {
"MyDatabase": "Server=(localdb)\\mssqllocaldb;Database=TestDB;Trusted_Connection=True;"
},

但是我需要如何更改我的 DbContext?以及我的测试项目如何设置连接字符串?

这应该是很多人以前做过的简单操作,但我在谷歌搜索中找不到任何示例。谢谢。

最佳答案

嗯,这并没有引起太大兴趣。我有一个可行的解决方案,但我不相信我做对了,有人有更好的办法吗?

我创建了一个新的设置类来保存设置,目前只有 DbConnection

public class Settings
{
public string DBConnection { get; set; }
}

然后我将设置放在 appsettings.json 中

"Settings": {
"DBConnection": "Server=(localdb)\\mssqllocaldb;Database=TestDB;Trusted_Connection=True;"
}

并将此配置绑定(bind)到 Startup 中的 Settings 对象

private void AddConfigurationSettingsSingleton(IServiceCollection services)
{
var config = new Settings();
Configuration.GetSection("Settings").Bind(config);
services.AddSingleton(config);
}

然后 DI 将其粘贴到需要的任何地方。

public class Repository
{
private readonly SkinDbContext dbContext;
public Repository(Settings settings)
{
dbContext = new MyDbContext(settings.DBConnection);
}

我的任何 DBContext 都采用连接字符串

public class MyDbContext: DbContext
{
public MyDbContext(string connectionString): base(connectionString)
{
}
}

关于c# - 使用.net core时应该如何存储 Entity Framework 6连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41057068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com