我正在尝试了解 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) 我正在开发的应用程序运行得太慢了.
我已经运行了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)
让我更加困惑的是,在"被调用的功能"面板中,我读到了,在经历的包容时间方面:
由于该功能除了调用ToUpper和GetHashCode函数之外什么都不做,我很难搞清楚我可以在这里改进什么.
你能帮我解释一下吗?
我必须解析一个字符串,格式为!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)
失败并显示错误消息“子模式名称必须是唯一的”。
有什么办法可以捕获同一组中的不同模式吗?
我正在使用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) 在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反之亦然。
我已经发现了一个旧的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'强制转换为无效指针?
非常感谢你的帮助
我开发了一个 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 模块时,它返回错误 …
我尝试使用我的第一个异步函数是 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)”
我不明白我在这里做错了什么。
非常感谢你的帮助,
在课堂上,我处理一个列表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)
甚至不编译......
这样做的正确方法是什么?
我有两个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的解决方法?
c# ×3
.net ×2
vb.net ×2
angular ×1
asp.net-mvc ×1
asynchronous ×1
c++ ×1
css ×1
dapper ×1
interface ×1
jquery ×1
list ×1
oracle ×1
performance ×1
pointers ×1
regex ×1
regex-group ×1
sql-server ×1
vba ×1