мой вопрос довольно прост, и я много искал ответ, но не смог найти решение. Однако это не похоже на необычный сценарий, поэтому, если я упускаю из виду что-то простое или есть ссылка, которую я упустил, это касается моей проблемы, я был бы благодарен за какое-то руководство! Здесь ....Net Core Reverse-Engineering с подключением к базе данных DNS
При попытке подключиться к существующей базе данных за пределами моего нового проекта .Net Core. Я следую инструкциям для обратной инженерии здесь: https://docs.efproject.net/en/latest/platforms/aspnetcore/existing-db.html
Эти инструкции работают для db на моей локальной машине, но когда я запускаю Scaffold-DbContext со строкой подключения к DNS базы данных для внешнего сервера, он создает контекст, но не сущностей. Так что мой файл класса контекста выглядит следующим образом:
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
namespace CensusApi.Models
{
public partial class CensusDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
optionsBuilder.UseSqlServer(@"Server=database.dns.org,[port];Database=mydatabase;Integrated Security=False;User ID=myuser;Password=mypassword;");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
// Unable to generate entity type for table 'dbo.LANDING_DEMOGRAPHICS_2010'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.LANDING_ECONOMIC_2007_2011'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.LANDING_STATE_FIPS'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.LANDING_ZIP_STATE'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.SAMAIN_ZIP_STATE'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_HOUSEHOLDS'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_HOUSING_OCCUPANCY'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_MEDIAN_AGE'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_MEDIAN_INCOME'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_POPULATION'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_POPULATION_BY_RANGE'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_RACE'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_RACE_HISPANIC_AND_LATINO'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_RELATIONSHIP'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.STAGE_ZIP_STATE'. Please see the warning messages.
// Unable to generate entity type for table 'dbo.LogShipStatus'. Please see the warning messages.
}
}
окно ErrorList относится к #warning на линии 11 выше (то есть предупреждение, чтобы защитить потенциально конфиденциальную информацию в строке соединения) кода. Я понимаю следующий шаг после того, как это обратное проектирование - это переустановить строку подключения, и что #warning является общим предупреждением, а не препятствием для процесса обратной инженерии.
Учетные данные, которые я пробовал, включают пользователя sa, а также ограниченного пользователя. Оба имеют одинаковые результаты, поэтому, похоже, это не проблема с правами доступа.
Есть ли другой способ или структура, которую я должен использовать для подключения к внешнему серверу?
Любые идеи или отзывы были бы очень признательны!
Спасибо, что нашли время, чтобы ответить, Цзэн. Однако перемещение строки подключения не решает мою проблему, так как команде Scaffold-DbContext требуется строка подключения. Как только строка соединения перемещается в Startup.cs, есть ли способ, с помощью которой я могу ссылаться на re-scaffold OR, есть ли способ обновить эшафот, используя пересмотренный контекст? –
Является ли ваш контекст в том же приложении, что и веб-проект? В настоящее время существует ограничение на то, что инструменты командной строки работают только в том случае, если контекст находится в приложении и не будет работать в библиотеках классов. Существует обходное решение, хотя https://docs.efproject.net/en/latest/miscellaneous/cli/dotnet.html#targeting-class-library-projects-is-not-supported – Tseng
Является ли db, с которого вы успешно сгенерировали объекты из то же (схема), как тот, с которым вы пытаетесь подключиться через DSN? –