小编Max*_*ime的帖子

如何使用实体框架查询外键对象?

我正在尝试了解 Entity Framework 6,但遇到了一个问题,我已经能够在测试项目中重现该问题:

AMovie有 aName和 a Revenue。ARevenue有一个GrossIncome

public class Movie
{
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
        public Revenue Revenue { get; set; }
}

public class Revenue
{
        [Key]
        public int Id { get; set; }
        public double GrossIncome { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 EF6 代码优先在数据库中保存有关电影的一些数据:

public class MovieContext: DbContext
{
    public MovieContext(): base("name=testDB") { }
    public DbSet<Movie> Movies …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework entity-framework-6

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

为什么"功能体"会阻碍我的应用程序?

我正在开发的应用程序运行得太慢了.

我已经运行了Visual Studio的性能诊断程序,并发现一个单独的函数在66%的时间GetHashCode运行,即下面的类的功能.

Public Class Identifier

    Public Property Name As String

    Public Overrides Function GetHashCode() As Integer
        Return Name.ToUpper().GetHashCode()
    End Function

    Public Overrides Function Equals(other As Object) As Boolean
        Dim otherIdentifier = TryCast(other, Identifier)
        If otherIdentifier Is Nothing Then
            Return False
        Else
            Return String.Equals(Name, otherIdentifier.Name, StringComparison.InvariantCultureIgnoreCase)
        End If
    End Function
End Class
Run Code Online (Sandbox Code Playgroud)

让我更加困惑的是,在"被调用的功能"面板中,我读到了,在经历的包容时间方面:

  • System.String.ToUpper():0.61%
  • System.String.GetHashCode():0.21%
  • 功能体:66.67%

由于该功能除了调用ToUpperGetHashCode函数之外什么都不做,我很难搞清楚我可以在这里改进什么.

你能帮我解释一下吗?

.net vb.net performance

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

如何强制两个模式捕获到正则表达式中的同一组

我必须解析一个字符串,格式为!info1!info2!,并且info2是可选的。

我正在尝试使用正则表达式来捕获,info1如果info2需要的话。

我想出了以下模式:

!([^!]*?)!(.*?)!|!(.*?)! 
Run Code Online (Sandbox Code Playgroud)

它有效,但我对结果不满意:

!foo!bar! -> Group1: foo Group2:bar
!foo!     -> Group3: foo
(https://regex101.com/r/D9d6YP/1)
Run Code Online (Sandbox Code Playgroud)

在这两种表达方式中,foo表示相同的事物,并且随后以相同的方式进行处理。我想将它捕获在同一组中,无论是否有第二组。

我尝试过使用命名捕获组,但似乎它们无法重复使用

!(?<info1>[^!]*?)!(?<info2>.*?)!|!(?<info1>.*?)!
Run Code Online (Sandbox Code Playgroud)

失败并显示错误消息“子模式名称必须是唯一的”。

有什么办法可以捕获同一组中的不同模式吗?

.net regex regex-group

6
推荐指数
1
解决办法
3110
查看次数

什么可能导致Dapper演员失败?

我正在使用Dapper执行一个非常简单的查询:

const string query =
          "SELECT measurement From Table;";
return connection.Query<Foo>(query);
Run Code Online (Sandbox Code Playgroud)

foo定义如下:

public class Foo
{
    public object measurement { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它完美地运作.如果我检查结果对象,Measurement是一个double.

不过,如果我明确地键入Measurement一个double:

public class Foo
{
    public double measurement { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Dapper抛出异常:

System.Data.DataException:'解析第0列时出错(measurement = 4.64518928527832 - Double)'

由于作为对象输入有效,它并不太烦人,但我想了解导致这种行为的原因.

编辑:做同样的事情,老式的方式非常好用measurement打字作为一个Double

using (connection)
            {
                connection.Open();
                var cmd = connection.CreateCommand();
                cmd.CommandText = "SELECT measurement From Table;";
                Foo foo= new Foo();
                using (IDataReader reader …
Run Code Online (Sandbox Code Playgroud)

c# oracle dapper

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

是否可以向Angular Material选项卡添加自定义类?

在Angular 6中,我使用Angular Material通过Tabs显示一些数据。

<mat-tab-group>
    <mat-tab 
    *ngFor="let bar of foo.bar" 
    [label]="bar.Name"
    [ngClass]="bar.IsActive ? 'bar-on' : 'bar-off'">
      // ...
    </mat-tab>
  </mat-tab-group>
Run Code Online (Sandbox Code Playgroud)

无论IsActivebar 的属性是true还是,我都希望标签的样式不同false

我已尝试使用[ngClass]="bar.IsActive ? 'bar-on' : 'bar-off'"如上所示,但未添加该类。

尽管有这样的尝试,我还是尝试了更简单的方法,class = 'bar-on'但是即使这样也没有添加该类。

因此,我想知道是否可以向Angular Material选项卡添加自定义类?

编辑:该IsActive属性是foo对象的属性。它与选项卡的激活状态无关。活动选项卡可以显示一个对象,IsActive = false反之亦然。

angular-material2 angular

5
推荐指数
2
解决办法
4776
查看次数

输出void指针功能

我已经发现了一个旧的C++ DLL,我想在VS2015的一个项目中使用它.

问题是,它没有编译.我与团队中的一个人开始联系,他们首先制作了代码,并且他确信使用VS2010编译完全相同的代码.

我在一个非常简单的函数中有一个错误:

标题摘录:

/*
Data input
*/
istream* input; //Source of data
long inputpos;  // Current position in the data stream
Run Code Online (Sandbox Code Playgroud)

代码本身:

// Helper function to increment a counter while reading a character
void* Calculator::inputstream_get(char& ch)
{
    ++inputpos;
   return input->get(ch);
}
Run Code Online (Sandbox Code Playgroud)

最后,我得到一个错误C2440:

'return': cannot convert from 'std::basic_istream<char,std::char_traits<char>>' to 'void *'
Run Code Online (Sandbox Code Playgroud)

这是我的理解(我不是C++专家,我必须说...),无效指针可以代表任何类型的数据,我错了吗?

有没有办法将我的istream'强制转换为无效指针?

非常感谢你的帮助

c++ pointers

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

通过 VBA 使用 MVC API 和 Windows 身份验证

我开发了一个 MVC 应用程序,为了解决这个问题,它只有一个控制器:

Public Function GetValue()
    Return User.Identity.Name
End Function
Run Code Online (Sandbox Code Playgroud)

该应用程序要在 Intranet 网络上使用,因此,我将其设置为“Windows 身份验证”

目的是通过 VBA 查询该应用程序。

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
With objHTTP
    .Open "GET", URL, False
    .setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    .setRequestHeader "Content-type", "application/json"
    .setRequestHeader "data-type", "json"
    .send
    .WaitForResponse
    sResult = .ResponseText
End With
Debug.Print (sResult)
Run Code Online (Sandbox Code Playgroud)

如果我在本地运行该应用程序(即在运行 Excel 的计算机上进行调试),它可以通过 Chrome 运行(访问 localhost:xxxxx/api/name 返回带有我的 ActiveDirectory 用户名的 xml 文件)。

VBA 例程也运行良好,输出窗口显示我在 Chrome 中获得的 XML。

现在,如果我将项目发布到 IIS 服务器,它仍然可以通过 Chrome 运行(访问 myserver/api/name 会返回带有我的 ActiveDirectory 用户名的 xml 文件)。但是,当我运行 VBA 模块时,它返回错误 …

asp.net-mvc vba windows-authentication

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

异步函数的返回值

我尝试使用我的第一个异步函数是 VB.NET,但出现了一个我不明白的错误。

我在文档(https://msdn.microsoft.com/fr-fr/library/mt674902.aspx)中读到

' - 返回类型为 Task 或 Task(Of T)。(请参阅“返回类型”部分。)

' 这里,它是 Task(Of Integer),因为 return 语句返回一个整数。

这是(非常简单)代码。

Async Sub Main()
    Dim test
    test = Await funcAsync()
End Sub

Function funcAsync() As Task(Of Integer)
    Dim result As Integer
    result = 2
    funcAsync = result
End Function
Run Code Online (Sandbox Code Playgroud)

我在行中遇到编译错误funcAsync = result:“Integer”类型的值无法转换为“Task(Of Integer)”

我不明白我在这里做错了什么。

非常感谢你的帮助,

vb.net asynchronous

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

合并实现相同接口的两个类列表

在课堂上,我处理一个列表IInterface.

我希望以一种单独的方式处理这两种可能的实现,因此:

public List<IInterface> Process(List<IInterface> InterfaceList)
{
    List<FirstImplementation> FirstList = FirstProcess(InterfaceList.OfType<FirstImplementation>.ToList());

    List<SecondImplementation> SecondList = SecondProcess(InterfaceList.OfType<SecondImplementation>.ToList());

   return new List<IInterface> {
    FirstList,
    SecondList
};

}
Run Code Online (Sandbox Code Playgroud)

我想返回一个List<IInterface>,与输入一样,两者都比预期的要困难

   return new List<IInterface> {
    FirstList,
    SecondList
};
Run Code Online (Sandbox Code Playgroud)

编译但在运行时抛出InvalidCastException,

return new List<IInterface>.AddRange(FirstList).AddRange(SecondList);
Run Code Online (Sandbox Code Playgroud)

甚至不编译......

这样做的正确方法是什么?

c# interface list

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

悬停时显示在div上方

我有两个div,页脚配置.目的是在悬停时,通过显示隐藏的div来向上扩展页脚.

#extendedFooter,
#test {
    display: none;
}
#standardFooter:hover~#extendedFooter,
#standardFooter:hover~#test{
    display: block;
}
Run Code Online (Sandbox Code Playgroud)
<div id='extendedFooter'>
    It does not work :(
</div>

<div id='standardFooter'>
        Hover me
</div>

<div id='test'>
    Show me
</div>
Run Code Online (Sandbox Code Playgroud)

我已经设法使CSS工作时,显示的div是在悬停的div之后,但是当显示的div在悬停的div之前时它不起作用.

有没有办法只用CSS来实现这个目的?如果没有,是否有使用jQuery的解决方法?

css jquery

0
推荐指数
1
解决办法
61
查看次数