我有个问题。我对 docker 很陌生,所以我想要做的是创建一个 docker-compose 文件,该文件在 compose 命令上也将创建数据库。问题是它没有像我问的那样创建数据库。所以我的 docker-compose 看起来像:
version: '3'
services:
db:
image: postgres:latest
restart: always
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: 'postgres'
volumes:
- database_data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
volumes:
database_data:
driver: local
Run Code Online (Sandbox Code Playgroud)
当我在日志中启动 docker-compose up 时,我可以看到
db_1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1 |
db_1 | 2020-01-13 11:14:36.259 UTC [1] LOG: starting PostgreSQL 12.1 (Debian 12.1-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
db_1 | 2020-01-13 11:14:36.259 UTC [1] LOG: listening on …Run Code Online (Sandbox Code Playgroud) 我有一个简单的问题,我有2层应用程序,一些前端和数据访问层,在不同的项目中.我通过数据访问层中的迁移在数据访问层中创建sqlite db,现在我想使用连接字符串,所以我在数据访问层创建上下文,如:
public class TodoDbContext : DbContext
{
public DbSet<Activity> Activieties { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite(@"Data Source=todo.db");
}
}
Run Code Online (Sandbox Code Playgroud)
看起来很简单,db是在数据访问层项目中创建的.但是,当我运行前端项目程序正在寻找一个数据库,但在前端项目文件夹.我有checke通过添加:
var test = Directory.GetCurrentDirectory();
Run Code Online (Sandbox Code Playgroud)
在上面的方法中.当我修改连接字符串到直接路径时:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite(@"Data Source=C:\Users\Administrator\Desktop\TodoList\TodoDataAccess\todo.db");
}
Run Code Online (Sandbox Code Playgroud)
它有效,所以我的问题是我可以做些什么来改变它?
嗨,我有一个问题,
如果在c#中使用实体框架核心,则能够进行db迁移,如果它在启动时没有退出并且看起来相当简单(使用此文档https://docs.microsoft.com/pl-pl/ef/core/managing-模式/迁移/)
db.Database.Migrate();
Run Code Online (Sandbox Code Playgroud)
db是上下文。
因此在f#中上下文看起来像:
模块GeneralContext
open Microsoft.EntityFrameworkCore
open DataAccess.Model.Cabin
open DataAccess.TypeProviders.DatabaseSettings
type GeneralContext() =
inherit DbContext()
override this.OnConfiguring(optionsBuilder : DbContextOptionsBuilder) =
let connetionString = DatabaseSettings.GetDbConfiguration
optionsBuilder.UseNpgsql(connetionString) |> ignore
[<DefaultValue>]
val mutable Cabins : DbSet<Cabin>
member public this.Cabin
with get() = this.Cabins
and set cabin = this.Cabins <- cabin
Run Code Online (Sandbox Code Playgroud)
我尝试:
let Migrate =
use context = new GeneralContext()
context.Database.Migrate()
Run Code Online (Sandbox Code Playgroud)
但是我收到消息,未定义字段构造函数迁移。我检查了命名空间,比较了实体框架核心外观的c#和f#项目,它们是相同的,
我在mu nuget中使用Microsoft.EntityFrameworkCore.Tools和Npgsql.EntityFrameworkCore.PostgreSQL
我究竟做错了什么?
我有一个问题,我有一个非常简单的脚本,它在循环中启动 anpther 二进制文件,它看起来像这样:
for (( i=0; \\$i <= 5; i++ )) ; do
test.sh
done
Run Code Online (Sandbox Code Playgroud)
现在的问题是,每次执行之后 test.sh 都会问我是否要覆盖日志,例如“你想覆盖日志吗?[是/否]”
在出现该提示后,脚本暂停并停止迭代,直到我手动按 Y 并继续直到出现另一个提示。
为了自动化过程,我可以模拟按下“Y”按钮吗?
我有一个简单的应用程序,它使用 topshelf 作为服务启动,它看起来很简单:
HostFactory.Run(x =>
{
x.Service<RequestService>();
x.RunAsLocalSystem();
});
Run Code Online (Sandbox Code Playgroud)
嗯,它可以工作,但是在 Windows 下。当我在 Linux 下尝试这个时,我得到:
Topshelf.Runtime.Windows.WindowsHostEnvironment 错误:0:无法获取父进程(忽略),System.DllNotFoundException:无法加载共享库“kernel32.dll”或其依赖项之一。为了帮助诊断加载问题,请考虑设置 LD_DEBUG 环境变量:libkernel32.dll:无法打开共享对象文件:没有这样的文件或目录
有人遇到过这个问题吗?我试图用谷歌搜索它,但有人说它有效,但它只是适用于 Windows 的工具。
或者.net core还有其他的服务提升框架吗?
我有一个问题,我有一个简单的命名元组和一个配置,在 8 种情况下我应该使用元组值,但通过索引,所以它看起来像:
private int[] delayParametersIndexSetup = new int[] {1, 0, 0, 1, 1, 0, 0, 1 };
private (int delayWheel, int delayDiag) delayParameters = (1, 500);
Run Code Online (Sandbox Code Playgroud)
换句话说,当我迭代delayParametersIndexSetup时,我想要一个由该索引表示的元组值,如下所示:
foreach (var index in delayParametersIndexSetup)
{
var value = this.delayParameters.ToTuple()[index];
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用 Item1、Item2 等,但我希望在不使用 case 语句的情况下更加灵活。
我读到我可以使用 ITuple (item[x] 属性,如文档中所示),但我的 VS 找不到这种类型。
我这可能吗?
我正在尝试创建转换器,显示某些值是否为其他然后“无”只需在单元格中写入 X,因此我创建了简单的元素样式:
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Text" Value="{Binding Value, Converter={StaticResource SetBitConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
Run Code Online (Sandbox Code Playgroud)
转换器也很简单
public class SetBitConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var input = value as string;
switch (input)
{
case "None":
return "OK";
default:
return "X";
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,在设置值时,它不会进入转换器,但例如,如果我将属性从“文本”更改为“背景”,它将毫无问题地进入转换器。
我想我有一个相当简单的问题,但是我找不到有关它的任何信息。因此,例如在c#中,我可以使用继承定义值枚举类型:
public enum RequestedService : ushort
{
[Description("Unknown")]
Unknown = 0,
[Description("Status")]
SERVICE1 = 0x0001
}
Run Code Online (Sandbox Code Playgroud)
但是我将如何在F#中做到这一点,到目前为止,我将其翻译为:
type RequestedService =
| [<Description("Unknown")>] Unknown = 0u
| [<Description("Status")>] SERVICE1 = 0x0001u
Run Code Online (Sandbox Code Playgroud)
我尝试使用继承,并尝试在值之前定义类型,例如
Unknown = uint16 0u
Run Code Online (Sandbox Code Playgroud)
但是我遇到了编译错误,这可能吗?
您好,我有一个关于 F# 中异步的问题。
因此,我有一个在后台运行的简单过程,该过程放置在类型的成员中,如下所示:
type Sender() =
member this.Start(udpConectionPool) = async {
(* Some operation that continuously sends something over udp*)
} |> Async.Start
Run Code Online (Sandbox Code Playgroud)
因此,这开始并开始通过 UDP 连续发送帧,而不阻塞程序的其余部分,但有时我想重新启动线程(假设我想添加新端点,它将发送到该udpConnectionPool参数)。
我正在考虑将任务转储给成员之类的事情,然后:
member this.Stop() = async {
do! (*stop async start member that contains task*)
}
Run Code Online (Sandbox Code Playgroud)
然后我可以使用更新的连接池重新启动此任务,但我不知道是否可以做到这一点。
我的问题是,是否可以停止这样的任务,或者如果不能,是否有更好的方法来完成?
我正在使用标准选项生成数据,但我想将分页控件移动到另一个<div>sDom之外
<div class="pagination">pagination</div>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现如何复制它看起来像:
"fnInitComplete": function(oSettings){
var $pagination = $('.dataTables_paginate').clone(true, true);
$('.navbar-inner').append($pagination);
}
Run Code Online (Sandbox Code Playgroud)
有办法吗?