【发布时间】:2021-08-26 11:37:40
【问题描述】:
我正在和这个作斗争......如果可以的话请帮忙
这是在我的启动文件中(依赖注入)
public override void Configure(IFunctionsHostBuilder builder) { builder.Services.AddDbContext<CatsDBContext>( options => { const string Name = "SqlConnectionString"; options.UseSqlServer(Configuration.GetConnectionString(Name)); });
这是我的 local.settings.json
{
"IsEncrypted": false, "Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet" },
"ConnectionStrings": {
"SqlConnectionString": "Server=tcp:animal77.database.windows.net,1433;Initial Catalog=CatsDB;Persist Security Info=False;User ID=j;Password=A;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;"
} }
这是我的上下文
namespace Shizzle.Models
{
public partial class CatsDBContext : DbContext
{
public CatsDBContext()
{
}
public CatsDBContext(DbContextOptions<CatsDBContext> options)
: base(options)
{
}
public virtual DbSet<Cats> Cats { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
#warning
// optionsBuilder.UseSqlServer("Server=tcp:animal77.database.windows.net,1433;Initial Catalog=CatsDB;Persist Security Info=False;User ID=j;Password='';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;");
}
这是我希望它对数据库执行的功能
namespace Shizzle
{
public class Function1
{
private readonly CatsDBContext _applicationDbContext;
public Function1(CatsDBContext applicationDbContext)
{
_applicationDbContext = applicationDbContext;
}
[FunctionName("Function1")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string name = req.Query["name"];
var demo = new Cats { Name = "Jason", Id = 5 };
_applicationDbContext.Cats.Add(demo);
_applicationDbContext.SaveChanges();
这是我的启动 DI 类:
[assembly: FunctionsStartup(typeof(Startup))]
namespace Shizzle
{
class Startup : FunctionsStartup
{
public IConfiguration Configuration { get; }
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddDbContext<CatsDBContext>(
options =>
{
const string Name = "SqlConnectionString";
options.UseSqlServer(Configuration.GetConnectionString(Name));
});
}
}
}
我在 Visual Studio 2019 中遇到此错误
谁能帮忙 - 这让我发疯了。
【问题讨论】:
-
你少了一个's'。
-
一方面,连接字符串对象应该在“值”对象中。虽然不确定该对象是否在那里工作,但您也可以在 values 对象中使用顶级设置。
-
我在哪里错过了 s ?
-
如果我将它添加到他们的 intelisense 中,它不会调出 ConnectionStrings,而我放的地方却会。
-
构建配置的逻辑在哪里?您的配置对象来自哪里?
标签: c# entity-framework-core azure-functions