Я новичок в ядре asp.net, и задача, которую я хочу сделать, должна быть очень простой.
Используя Visual Studio, я пытаюсь связать файл .mdf со своим проектом в качестве локальной базы данных. Поскольку я хочу, чтобы он работал на нескольких компьютерах, мне нужно найти путь к папке с данными в appsettings.json. Поэтому после некоторых исследований лучший способ сделать это - использовать строку подстановки | DataDirectory | .
Проблема заключается в том, что мой веб-сайт не может получить доступ к моему mdf-файлу таким образом, и он генерирует ArgumentException: "Неверное значение для ключа 'attachdbfilename'" . Хотя я нашел несколько тем по этой проблеме, ни один из них не ответил на мой вопрос.
Я уже пытался использовать полный путь, чтобы найти свой файл, и он работал, но, как я уже сказал, мне нужно найти его на нескольких компьютерах.
Вот Startup.cs и appsettings.json
Startup.cs :
public class Startup
{
public Startup(IConfiguration configuration)
{
string path = Path.Combine(Directory.GetCurrentDirectory(), "App_Data");
AppDomain.CurrentDomain.SetData("DataDirectory", path);
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
[...]
}
Моя строка подключения, в appsettings.json :
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;AttachDbFilename=|DataDirectory|\\aspnet-MatrixCalculatorApp-db.mdf;Trusted_Connection=True;MultipleActiveResultSets=true"
},
При необходимости я также могу предоставить трассировку стека.
Заранее благодарю за помощь.