赫山老妖
赫山老妖
一个会点单片机、linux、dotnet的家伙

注册于 1 year ago

回答
6
文章
0
关注者
0

这个需求,可以通过BackgroundService来实现,这个是asp.net core框架支持的,和wtm无关。在wtm中可以正常使用。

写一个服务类,继承BackgroundService,这个服务中编写实时通讯相关的代码,可以操作数据库。
在startup中,通过AddHostedService将后台服务添加到服务集合容器,系统启动时,就会在后台运行这个服务。
还可以将实时处理代码封装成通讯服务类,
定义服务类的接口,使用接口将服务类注入到系统服务容器,
x.AddSingleton<YourInterface,YourService>();
这样,还可以在控制器中使用服务注入,实现通过页面直接访问实时通讯数据。

添加后,运行报错
System.NullReferenceException:“Object reference not set to an instance of an object.”
WalkingTec.Mvvm.Core.BaseVM.Localizer.get 返回 null。
清理过项目了。

使用ef迁移时,会调用DataContextFactory.CreateDbContext()
此时并未启动系统依赖注入管理,不能启用依赖注入获取系统配置对象
可自行处理读取配置文件提取连接参数或直接在DataContext实例化方法中传入连接参数。

刚部署了一个空的mvc项目,也存在同样的问题,应该不是WTM的问题,我再研究呵。

补充说明:
问题已解决,是配置参数拼写有误呵。可正常通过supervisor进行管理。
本想删除问题,因已有答案,无法删除,在些说明一下呵,以免误导别人。

sqlite需要手动执行迁移命令
在包管理控制台,项目中选中DataAccess,执行
add-migration init
update-database
即可生成迁移代码和创建/更新数据库

发布
问题