小编Con*_*ver的帖子

EF Core在直接访问之前返回空关系

我有一些类似下面的模型:

public class Mutant
{
    public long Id { get; set; }
    ...

    // Relations
    public long OriginalCodeId { get; set; }
    public virtual OriginalCode OriginalCode { get; set; }
    public int DifficultyLevelId { get; set; }
    public virtual DifficultyLevel DifficultyLevel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class OriginalCode
{
    public long Id { get; set; }
    ...

    // Relations
    public virtual List<Mutant> Mutants { get; set; }
    public virtual List<OriginalCodeInputParameter> OriginalCodeInputParameters { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的关系OnModelCreating …

entity-framework-core

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

EF Core Second level ThenInclude missworks

假设首先使用这些模型:

Method有一个OriginalCode OriginalCode有很多Mutants Mutant有很多ParseSubTrees的

现在在查询时Method我希望另一个被加载.所以我有以下内容:

Method targetMethod = dBContext.Methods
            .Include(me => me.OriginalCode)
                .ThenInclude(oc => oc.Mutants)
            .FirstOrDefault(me => me.Id == id);
Run Code Online (Sandbox Code Playgroud)

并且下一步是另外包括ParseSubTree.但问题是我无法访问它.请参见以下图像:

mu是除对象引用之外的列表

问题是"mu是列表而不是对象引用"!

我的错误在哪里!

TG.

entity-framework include entity-framework-core .net-core

18
推荐指数
1
解决办法
2866
查看次数

实体框架按字符串sql过滤数据

我在我的表中存储了一些过滤数据.让我更清楚一点:我想将一些where子句及其值存储在数据库中,并在我想从数据库中检索数据时使用它们.

例如,考虑一个people表(实体集)和另一个表中的一些过滤器:

"age" , "> 70"
"gender" , "= male"
Run Code Online (Sandbox Code Playgroud)

现在,当我从people表中检索数据时,我想让这些过滤器过滤我的数据.

我知道我可以生成一个SQL查询作为字符串并执行它,但在EF,LINQ中还有其他更好的方法吗?

sql linq sql-server entity-framework linq-expressions

14
推荐指数
1
解决办法
1780
查看次数

从ANDROID编程中的位图图像复制位矩阵

我正在开发一个Android应用程序,帮助用户通过草绘或绘图复制位图的一部分.我的意思是用户将在Canvas上绘制一些具有位图作为背景的形状,然后我将这些点着色为位图(位矩阵/ 2D位阵列).直到这里每个人都听起来不错.

现在的问题是如何复制矩阵中具有相应真位的图像部分?

补充说明

1)主图像:

任何过程都需要图像

2)图像作为画布背景:

图像作为画布背景

3)画布上的一些画作:

用户在画布上绘画

4)绘制区域的位矩阵表示:

位矩阵

5)预期产出:

输出的地方在哪里

android bitmap matrix

13
推荐指数
1
解决办法
1133
查看次数

ANTLR v4,JavaLexer和JavaParser将null作为解析树返回

我正在使用antlr v4来提取java程序的解析树以用于其他目的.我从这个样本开始:ANTLR v4访客样本

我已经测试了给定链接上的步骤,以检查它是否有效以及一切正常:

java Run
a = 1+2
b = a^2
c = a+b*(a-1)
a+b+c
^Z
Result: 33.0
Run Code Online (Sandbox Code Playgroud)

然后我编写了自己的解析java程序如下面的结构:

|_Java.g4                                                               
|_Java.tokens                                                           
|_JavaBaseVisitor.java                                                  
|_JavaLexer.java                                                        
|_JavaLexer.tokens                                                      
|_JavaParser.java                                                       
|_JavaTreeExtractorVisitor.java                                         
|_JavaVisitor.java           
|_Run.java 
Run Code Online (Sandbox Code Playgroud)

Run.java如下:

import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;

public class Run {
    public static void main(String[] args) throws Exception {
        CharStream input = CharStreams.fromFileName("F:\\Projects\\Java\\Netbeans\\ASTProj\\JavaTreeExtractor\\prog.java");
        JavaLexer lexer = new JavaLexer(input);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        JavaParser parser = new JavaParser(tokens);
        ParseTree tree = parser.getContext();

        JavaTreeExtractorVisitor calcVisitor = new JavaTreeExtractorVisitor();
        String result = calcVisitor.visit(tree);
        System.out.println("Result: …
Run Code Online (Sandbox Code Playgroud)

java visitor abstract-syntax-tree parse-tree antlr4

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

直接定义方法和属性或在js中使用getter

我正在开发一些 JS 代码并且有一个性能问题。考虑到我有一个包含许多方法和属性的大对象:

const obj = {
  prop1: 'some value',
  ...
  prop1000: 'some value',
  method1: someMethod,
  ...
  method1000: someMethod,
}
Run Code Online (Sandbox Code Playgroud)

第一个解决方案
我想如果我使用 getter 来获取每个字段(prop 或方法),它将帮助运行时引擎在不需要时在内存中加载更少的字段。例如:

const obj1 = {
  get prop1() { return 'some value'; },
  ...
  get prop1000() { return 'some value'; },
  get method1() { return someMethod; },
  ...
  get method1000() { return someMethod; },
}
Run Code Online (Sandbox Code Playgroud)

第二种解决方案
请注意,在这种情况下,我不需要任何二传手。
因此,当我在获取 obj 时使用第二种解决方案时,在我直接调用 getter 之前,不会自动获取任何字段。
现在的问题是,第二种解决方案是否真的提高了内存使用率和运行时性能,或者至少是一个好的做法?

javascript getter performance

6
推荐指数
0
解决办法
48
查看次数

EF Core DeleteBehavior.SetNull 造成循环问题

我正在使用 EF Core 1.1.0,但级联行为存在严重问题。

我有一个名为 Land 的模型,如下所示:

public class Land
{
    public long Id { get; set; }
    public int HorizontalPosition { get; set; }
    public int VerticalPosition { get; set; }
    public bool IsPlaced { get; set; }

    // Relations
    public string UserId { get; set; }
    public virtual User User { get; set; }
    public long? BuildingId { get; set; }
    public virtual Building Building { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和另一个名为 Building 的模型,如下所示:

public class Building
{
    public …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core .net-core

5
推荐指数
1
解决办法
1857
查看次数

Accord.net NaiveBayesLearning"索引超出了数组的范围"

我在dot net core 1.1中使用Accord.net 3.7.0.

我使用的算法是朴素贝叶斯.学习机制的源代码如下:

    public LearningResultViewModel NaiveBayes(int[][] inputs, int[] outputs)
    {
        // Create a new Naive Bayes learning
        var learner = new NaiveBayesLearning();

        // Learn a Naive Bayes model from the examples
        NaiveBayes nb = learner.Learn(inputs, outputs);

        #region test phase
        // Compute the machine outputs
        int[] predicted = nb.Decide(inputs);

        // Use confusion matrix to compute some statistics.
        ConfusionMatrix confusionMatrix = new ConfusionMatrix(predicted, outputs, 1, 0);
        #endregion

        LearningResultViewModel result = new LearningResultViewModel()
        {
            Distributions = nb.Distributions,
            NumberOfClasses = nb.NumberOfClasses, …
Run Code Online (Sandbox Code Playgroud)

c# accord.net .net-core

5
推荐指数
1
解决办法
599
查看次数

Aureliajs在App构造函数上等待数据

我正在用aureliajs开发一个应用程序。开发过程开始了许多个月,现在,后端开发人员希望对他们的服务进行版本控制。因此,我有一个Web服务可调用以获取每个服务器端(Web api)应用程序的版本,然后针对进一步的请求,调用正确的api地址(包括其版本)。

因此,在app.js中,我请求系统元并将其存储在某处。但是某些组件在此请求完成之前已初始化。因此,他们将找不到初始化的版本并请求错误的服务器数据。

我想让app.js构造函数等到检索到此数据。例如这样的事情:

export class App {
  async constructor(...) {
    ...

    await this.initializeHttp();

    ...
  }

  initializeHttp(){
    // get the system meta from server
  }
}
Run Code Online (Sandbox Code Playgroud)

但是此解决方案不适用。因为构造函数不能异步。因此,在检索系统元之前,我应该如何阻止该工作?

更新

这个问题不是这个问题的重复。在这个问题中,外部类中有一个地方等待初始化工作;尽管在我的问题中,主要的问题是等待的位置。因此,问题不仅仅在于构造函数中的异步函数,还在于在异步作业解决之前,阻止所有aurelia作业。

javascript promise async-await ecmascript-6 aurelia

5
推荐指数
1
解决办法
67
查看次数

绑定到动态生成的组件/元素的可绑定属性

我正在 aurelia 上开发一个自定义属性,以便用户在输入文本区域时从列表中进行选择。例如,用法将是这样的:

<textarea value.bind="description" placeholder="your description here" auto-complete></textarea>
Run Code Online (Sandbox Code Playgroud)

正如您可能注意到的, theauto-complete是属性。现在,当我想显示提示时,我想在自定义元素中执行此操作以保持简单。所以属性的附加方法将是这样的:

attached() {
    this.containerElement = document.createElement('div');
    this.containerElement.style.position = 'relative';
    const ce = document.createElement('autocomplete-menu');
    this.containerElement.appendChild(ce);
    const ceView = this.templatingEngine.enhance(ce);
    ceView.attached();
    const currentParrent = this.element.parentElement;
    currentParrent.replaceChild(this.containerElement, this.element);
    this.containerElement.appendChild(this.element);
}
Run Code Online (Sandbox Code Playgroud)

现在它打开并成功显示提示区域。屏幕截图:

结果

当我想从属性视图模型生成的元素进行通信时,问题就开始了。例如,我想将数据发送到其视图模型或将某个对象绑定到该对象的可绑定属性。对于这个问题我找到了这些解决方案:

https://discourse.aurelia.io/t/dynamically-add-custom-attribute-to-element/1400/6 https://ilikekillnerds.com/2016/01/enhancing-at-will-using-aurelias-templated -引擎增强-api/

并阅读本文的最后一部分:

https://aurelia.io/docs/binding/how-it-works#abstract-syntax-tree

并发现,我必须为元素的视图模型引入一个对象作为其绑定上下文或覆盖上下文。因此,如果我是对的,我已经测试了以下解决方案:

this.containerElement.appendChild(ce);
let vm = { test: 1 }
const ceView = this.templatingEngine.enhance({ element: ce, bindingContext: vm });
ceView.addBinding(vm);
ceView.attached();
Run Code Online (Sandbox Code Playgroud)

this.containerElement.appendChild(ce);
let vm = { test: 1 }
const ceView = this.templatingEngine.enhance(ce);
ceView.bind(vm); …
Run Code Online (Sandbox Code Playgroud)

data-binding template-engine aurelia

5
推荐指数
1
解决办法
209
查看次数