我正在与这个斗争......如果可以,请帮助
这是在我的启动文件中(依赖注入)
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 中收到此错误
任何人都可以帮忙 - 这让我发疯。
您缺少构建配置的逻辑
我认为最好的方法是也覆盖 ConfigureAppConfiguration
public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
Configuration = builder.ConfigurationBuilder.Build();
}
但是您也可以将其添加到您的Configure
函数中
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句