Пытаясь воспроизвести это, я решил другую проблему с Базовыми приложениями ASP.NET в шаблонах .NET Framework , ссылаясь на последние v5.4.1 пакеты MyGet , где Тесты .csproj должен ссылаться на новый пакет ServiceStack.Kestrel.Core
вместо ServiceStack.Kestrel
, i, e:
<PackageReference Include="ServiceStack.Kestrel.Core" Version="5.*" />
, который теперь обновляется во всех .Core
шаблонах.Чтобы получить доступ к последним пакетам v5.4.1 на MyGet, вам необходимо очистить кеш пакетов NuGet:
$ nuget locals all -clear
Затем установить последний web-corefix проект, используя новый web
.Инструмент NET Core:
$ dotnet tool install --global web
$ web new web-corefx WebCoreFx
Затем я добавил ссылку на OrmLite MySql в WebCoreFx.csproj
:
<PackageReference Include="ServiceStack.OrmLite.MySql.Core" Version="5.*" />
И обновил Startup.cs для регистрациипровайдер MySql, создайте и выберите из таблицы простую таблицу и получите доступ к ее ModelDefinition<T>.Definition
API:
class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public override void Configure(Container container)
{
SetConfig(new HostConfig {
DefaultRedirectPath = "/metadata",
DebugMode = AppSettings.Get(nameof(HostConfig.DebugMode), false)
});
container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(
"Server=localhost;Database=test;UID=root;Password=test;SslMode=none",
MySqlDialect.Provider));
using (var db = container.Resolve<IDbConnectionFactory>().OpenDbConnection())
{
db.DropAndCreateTable<Person>();
db.Insert(new Person {Id = 1, Name = "Name"});
var s = db.Select<Person>().Dump();
s.PrintDump();
}
var model = ModelDefinition<Person>.Definition;
model.Name.Print();
}
, который работает как положено и работает без проблем.
Если у вас все еще есть проблемы, вы можете загрузить MCVE на GitHub, который я могу запустить локально, чтобы воспроизвести проблему.