小编Fáb*_*nto的帖子

首先通过Fluent API在EF代码中实现Zero或One to Zero或One关系

我有两个POCO课程

public class Order
{
    int id;
    string code;
    int? quotationId;  //it is foreign key
    public int Id{get;set;}
    public string Code{get;set;}
    public int? QuotationId{get;set;}
    Quotation quotation;
    public virtual Quotation Quotation { get; set; }
    ....
}

public class Quotation
{
    int Id;
    string Code;
    public int Id{get;set;}
    public string Code{get;set;}
    Order order;
    public virtual Order Order { get; set; }
    ....   
}
Run Code Online (Sandbox Code Playgroud)

每个订单可以由一个或零引号组成,每个报价可能会导致一个订单,所以我有一个"一个或零"到"一个或零"关系,我怎么能在EF代码中首先通过流畅的API实现它?

c# entity-relationship entity-framework fluent ef-code-first

35
推荐指数
4
解决办法
4万
查看次数

匹配Chai断言中的部分对象?

我正在寻找匹配以下内容的最佳方式:

expect([
    {
        C1: 'xxx',
        C0: 'this causes it not to match.'
    }
]).to.deep.include.members([
    {
        C1: 'xxx'
    }
]);
Run Code Online (Sandbox Code Playgroud)

以上不起作用,因为C0存在于实际中,但不是预期的.简而言之,我希望这个期望通过PASS,但我不知道如何在不写一堆自定义代码的情况下做到这一点......

chai

19
推荐指数
4
解决办法
1万
查看次数

获取连接音频设备列表的android api是什么?

我使用下面添加的代码来获取Android设备的连接音频设备.使用AudioManager api方法,getDevices()并通过耳机,扬声器,耳机等连接设备获得结果.但是这个getDevices()方法仅在android api level 23(Marshmallow)之后可用.

但是我的应用程序应该支持api level 21(Lollipop).请任何人都可以告诉我替代api获取Android设备的可用音频设备.

与api级别23一起使用的代码.

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
    AudioDeviceInfo[] adi = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
}
Run Code Online (Sandbox Code Playgroud)

请帮助我为Marshmallow(api level 23)下的Android OS版本运行的设备提供连接的音频设备.

android android-hardware android-audiomanager android-5.0-lollipop android-api-levels

17
推荐指数
1
解决办法
3183
查看次数

Angular 6 - 单元测试 Mat-Select

1:mat-select 有 4 个值,1,2,3,4。

下面的代码适用于选择。所以如果它对读者有帮助,我想分享一下。

it('check the length of drop down', async () => {

    const trigger = fixture.debugElement.query(By.css('.mat-select-trigger')).nativeElement;
    trigger.click();
    fixture.detectChanges();
    await fixture.whenStable().then(() => {
        const inquiryOptions = fixture.debugElement.queryAll(By.css('.mat-option-text'));
        expect(inquiryOptions.length).toEqual(4);
    });
});
Run Code Online (Sandbox Code Playgroud)

2:我需要另一个测试来验证同一个 mat-select 中的默认值是否为 3。当页面加载时,下拉菜单的默认值设置为 3。

it('should validate the drop down value if it is set by default', async () => {

    const trigger = fixture.debugElement.query(By.css('.mat-select-trigger')).nativeElement;
    trigger.click();
    fixture.detectChanges();
    await fixture.whenStable().then(() => {
        const inquiryOptions = fixture.debugElement.queryAll(By.css('.mat-option-text'));
        const value = trigger.options[0].value;
        expect(value).toContain(3);
    });
});
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

unit-testing karma-jasmine angular6

12
推荐指数
3
解决办法
2万
查看次数

具有自定义FirebaseOptions初始化方法的Firebase Google Analytics(分析)

我必须为我的Android应用程序添加简单的Firebase Google Analytics。

我需要在运行时选择应用程序的Firebase项目。

“这非常罕见,但是有时应用程序必须能够在运行时选择其Firebase项目。这意味着您的应用程序无法使用合并到您应用程序中的FirebaseInitProvider提供的自动初始化。在这种情况下,解决方案有两个任务。”

参考链接:https : //firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html

因此,就我而言,我已完成以下操作:

  1. 创建了一个Application类:

    public class MyApplicationClass extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            FirebaseOptions.Builder builder = new FirebaseOptions.Builder().setApplicationId("1:5478125639014:android:054aa87g102b94aa5").setApiKey("ABcdXyzpQrst_8tlItnC5rcbgxkK_PqrstGWsTKo");
            FirebaseApp.initializeApp(this, builder.build());
        }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 添加了必需的清单Internet权限。

  3. 增加了依赖性:

    实施'com.google.firebase:firebase-analytics:17.1.0'

问题是我在那看不到任何分析数据,并且应用程序在Google Analytic的最后一步没有建立连接。

可能是什么问题或待解决的问题?

android google-analytics firebase firebase-analytics

9
推荐指数
1
解决办法
165
查看次数

使用node-mssql模块设置mssql数据库池连接

我想为我的项目使用mssql数据库。我使用了node-mssql模块(https://www.npmjs.com/package/mssql),并使用Microsoft SQL Server Management Studio 17进行数据库管理。

执行某些查询时,我不想多次连接到数据库,所以我想创建一个池来与数据库建立永久连接。

我的数据库管理器模块:

const sql = require('mssql');
const db = require('../config/database.js');
const pool = new sql.ConnectionPool(db).connect();
Run Code Online (Sandbox Code Playgroud)

我的数据库配置:

module.exports = {
    user: process.env.DB_USER || 'sa',
    password: process.env.DB_PASS || '-- myPassword --',
    server: process.env.DB_SERVER || 'localhost',
    database: process.env.DB || 'local_demo_cobra',
};
Run Code Online (Sandbox Code Playgroud)

MSSQL Studio我将身份验证模式更改为SQL Server身份验证

在此处输入图片说明

在这里您可以看到服务器管理的数据库

在此处输入图片说明

尝试运行代码时出现错误

ConnectionError:无法连接到本地主机:1433-无法连接(顺序)

该数据库在我自己的系统上运行,因此localhost应该可以使用。我还尝试将服务器配置更改为

server: process.env.DB_SERVER || 'localhost\\AP-MHERMSEN',
Run Code Online (Sandbox Code Playgroud)

但这会引发相同的错误

ConnectionError:无法连接到localhost \ AP-MHERMSEN

有什么问题或遗漏?

sql-server node.js

8
推荐指数
1
解决办法
243
查看次数

使用 javax.json.stream.JsonParser 和 Java 流解析的 JSON 字符串值的额外引号

我正在使用 Java Streams 解析从 REST 服务调用接收到的一些 JSON JsonParser.getObjectStream(),并过滤特定值,但从未获得我期望的匹配项。深入挖掘,我发现返回的字符串值在开头和结尾包含额外的双引号。

这是一些代码来说明。首先,我展示获取值的“直接”方法,然后展示流方法。

package com.company.jsonptest;

import java.io.StringReader;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.stream.JsonParser;

public class GetStringTest {
    public static void main(String[] args) {
        System.out.println("Direct...");
        JsonParser parser = Json.createParser(new StringReader(json));
        parser.next();
        JsonObject jsonObject = parser.getObject().asJsonObject();
        String username = jsonObject.getString("firstname");
        String name = jsonObject.getString("lastname");
        System.out.println("firstname: " + username);
        System.out.println("lastname: " + name);

        System.out.println("Streams...");
        JsonParser parser2 = Json.createParser(new StringReader(json));
        parser2.next();
        parser2.getObjectStream().forEach(entry -> {
            String key = entry.getKey();
            String value = entry.getValue().toString();
            String type = entry.getValue().getValueType().toString();
            System.out.println(key …
Run Code Online (Sandbox Code Playgroud)

java json java-stream

8
推荐指数
1
解决办法
1676
查看次数

如何使用 JobScheduler 为 Android 定期作业指定初始延迟?

我想创建一个具有特定时间和给定周期的正在运行的作业。例如,我想在每个月的第二天安排一个作业,它应该每个月运行。

查看JobInfo.Builder 文档,我还没有找到设置初始延迟的方法。

关于如何实现这一目标的任何想法?

这是以正确的周期运行但不以我想要的初始延迟运行的代码:

fun build(application: Application, periodicity: Days, startDay: Days) {
    val serviceComponent = ComponentName(application, GenerateDebtJobService::class.java)
    val builder = JobInfo.Builder(1, serviceComponent)
        .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
        .setPeriodic(TimeUnit.DAYS.toMillis(periodicity.days.toLong()))

    (application.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler).schedule(builder.build())
Run Code Online (Sandbox Code Playgroud)

java jobs android kotlin android-jobscheduler

7
推荐指数
1
解决办法
2330
查看次数

在httplisteners authenticationselectordelegate中给出身份验证被拒绝的消息

我目前正在使用httplistener authenticationselector委托进行Windows身份验证和ip检查,它的工作非常出色,因为它拒绝并允许应有的客户端。

但是,问题在于,当有人被拒绝时,他们会收到403 http响应,这似乎被大多数浏览器解释为黑屏。我想做的是发回一条消息,说“访问被拒绝:您的IP已被列入白名单”。

这可能吗?

下面是该代表的摘要(目前可以正常运行)。

AuthenticationSchemeSelector pIPChecker = pRequest =>
{
    if (!pfunIPChecker(pRequest.RemoteEndPoint.Address))
    {
        LogHelper.writeToEventLog(
            "WARNING, BANNED IP: " + pRequest.RemoteEndPoint.Address.MapToIPv4().ToString() + "attempted to login", 
            EventLogEntryType.Warning,
            LogHelper.EventLogID.PermissionFailure);

        return AuthenticationSchemes.None;
    }

    return AuthenticationSchemes.Anonymous;
}
Run Code Online (Sandbox Code Playgroud)

c# system.net httplistener

7
推荐指数
1
解决办法
116
查看次数

应用内更新不起作用。无法绑定服务错误

我正在尝试在 Android 中设置应用内更新对话框,但从文档中提供的示例来看它不起作用

我已经尝试过要求您执行此操作的文档中提供的示例。

appUpdateManager
    .getAppUpdateInfo()
    .addOnSuccessListener(
        new OnSuccessListener<AppUpdateInfo>() {
            @Override
            public void onSuccess(AppUpdateInfo appUpdateInfo) {
                if (appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
                    // If an in-app update is already running, resume the update.
                    try {
                        appUpdateManager.startUpdateFlowForResult(
                            appUpdateInfo,
                            IMMEDIATE,
                            MainActivity.this,
                            MY_REQUEST_CODE);
                    } catch (IntentSender.SendIntentException e) {
                        e.printStackTrace();
                    }
                }
            }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(Exception e) {
            Log.e(TAG, "onFailure: onResume" + e.getMessage() );
        }
    });
Run Code Online (Sandbox Code Playgroud)

预期的结果会告诉我一些选项,告诉我更新实际上可用。但它直接给了我无法绑定到服务的错误。

android in-app-update

7
推荐指数
1
解决办法
4418
查看次数