我认为在何时使用WithOptionalDependent以及何时使用时获得明确的答案可能会有所帮助WithOptionalPrincipal.这两个函数的帮助有点不清楚,我发现自己正在挖掘其他网站上的多个Stack Overflow答案和答案,结合答案,以确信我的关系是正确的方向.
以下是MSDN所说的内容WithOptionalDependent:
将关系配置为可选:在关系的另一侧没有导航属性的可选.正在配置的实体类型将是依赖项,并包含主体的外键.关系所针对的实体类型将是关系中的主体.
以下是它所说的内容WithOptionalPrincipal:
将关系配置为可选:在关系的另一侧没有导航属性的可选.正在配置的实体类型将是关系中的主体.关系所针对的实体类型将是依赖的实体类型,并包含主体的外键.
"正在配置的实体类型"这一行总是让我困惑(我假设其他人).
在这个例子中:
class MyEntityA
{
[Key]
public int Id { get; set; }
public int BId { get; set; }
[ForeignKey("BId")]
public MyEntityB B { get; set; }
}
class MyEntityB
{
[Key]
public int Id { get; set; }
}
modelBuilder.Entity<MyEntityA>().HasOptional(a => a.B).WithOptionalDependent();
Run Code Online (Sandbox Code Playgroud)
是"正在配置的实体类型"是指MyEntityA或MyEntityB?我认为它是前者.
如果这是正确的,你什么时候使用的例子是什么WithOptionalPrincipal?
我实际上在我的代码示例中认为它应该是,WithMany而不是WithOptional选项.显然我还是很困惑!
这两个函数都有重载,导航属性朝另一个方向发展.我认为那些重载不会改变那些答案,但如果我错了,请纠正我.
我希望这对更大的社区也有帮助.
我有一个无窗口的wpf应用程序,每当我将窗口状态设置为最大化时,它会在主显示器上最大化它.
我想要做的是让它最大化显示应用程序正在运行.
所以任何想法我会怎么做?
我的代码目前只是
private void titleBarThumb_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (this.WindowState == System.Windows.WindowState.Normal)
{
this.WindowState = System.Windows.WindowState.Maximized;
}
else
{
this.WindowState = System.Windows.WindowState.Normal;
}
}
Run Code Online (Sandbox Code Playgroud) 所以,我正在启动我的第一个基于HTML5浏览器的客户端项目.它必须将非常非常大的文本文件解析成一个或多个对象的数组.我知道我将如何编码呢; 我现在主要关注的是尽可能快地获取解析器代码,而我的主要测试平台是Chrome.然而,在查看子串方法之间的差异时(我很长时间没有触及过JavaScript),我注意到与FireFox相比,Chrome中的这个基准测试速度非常慢.为什么?
我的第一个假设是,它与FireFox的JS引擎处理字符串对象的方式有关,而对于FireFox,这个操作是简单的指针操作,而对于Chrome,它实际上是做硬拷贝.但是,我不确定为什么Chrome 不会做指针操作或为什么FireFox 会.有人有见识吗?
JSPerf似乎丢弃了我的FireFox结果,而不是在BrowserScope上显示它们.对我来说,我.substr()在FF4中获得了9,568,203±1.44%Ops/sec .
编辑:所以我在Chrome下面看到了FF3.5的性能结果.所以我决定测试我的指针假设.这让我进入了我的Substrings测试的第二次修订,它1,092,718±1.62%在FF4中的1,195±3.81%Ops /秒与Chrome中的Ops/sec 相比,速度提高了不到1000倍,但仍然是性能上无法解释的差异.
后记: 不,我不关心舔一下Internet Explorer.我很关心尝试提高自己的技能,并在更深层次上了解这种语言.
有没有办法在Azure Web App上预编译ASP.NET MVC视图(特别是通过VSTS上的发布管理发布时)?
一旦每个视图被击中一次,页面随后呈现非常快.但是第一次延迟对于用户来说可能是一种愚蠢的行为,并且无法通过脚本触摸每个页面.
我不确定是否需要在VSTS上构建/发布过程中更改某些内容(我正在使用Visual Studio Build构建步骤和Azure Web App发布任务),或者我是否需要在Azure Web App实例发布后运行某些内容(或者完全不同的东西).
似乎找到一些方法aspnet_compiler在发布之后调用可能是我需要的(我已经看到了参考云服务上的Web角色),但我无法让它工作.
调用
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v "/" -p "d:\home\site\wwwroot"
Run Code Online (Sandbox Code Playgroud)
通过Azure门户中的控制台执行得很好(如果有的话,找到错误)但对启动时间没有任何影响 - 第一次点击视图仍然需要很长时间.
所以也许这不是正确的方向.
我看过RazorGenerator(包括.MSBuild nuget包)并且我无法让它工作,但我真的犹豫要对项目进行如此多的更改只是为了在发布时进行预编译.
另请注意,我目前在VSTS中使用的是TFVC,而不是Git,因此据我所知,Kudu/Git集成(根据某些文章似乎确实触发了预编译).
其他想法?
根据 对 多个 帖子,微软能够使用的应用程序设置的能力- WEBSITE_TIME_ZONE-控制Web服务器的时区.
为了尝试这个,我将此值设置为"东部标准时间",这是我当地的时区.
在ASP.NET MVC Razor页面上,我添加了以下代码:
DateTime.Now: @DateTime.Now
DateTimeOffset.Now: @DateTimeOffset.Now
DateTime.UtcNow: @DateTimeOffset.UtcNow
Run Code Online (Sandbox Code Playgroud)
昨晚我在东部标准时间下午5:10:07运行这个时,它给出了以下输出:
DateTime.Now: 6/18/2015 5:10:07 PM
DateTimeOffset.Now: 6/18/2015 5:10:07 PM +00:00
DateTime.UtcNow: 6/18/2015 9:10:07 PM
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,正确设置允许DateTime.Now在我的时区中返回正确的值,而不是像Azure网站/ Web应用程序那样返回UTC.DateTime.UtcNow由于显而易见的原因,它总是返回正确的值.
但是,DateTimeOffset.Now返回本地时间,但偏移量为+00:00- 几乎就像时钟被改变而不是时区一样.即使文档说明(强调我的),也会发生这种情况:
获取DateTimeOffset对象,该对象在当前计算机上设置为当前日期和时间,偏移量设置为本地时间与协调世界时(UTC)的偏移量.
那么该WEBSITE_TIME_ZONE设置会产生什么影响,DateTime.Now但它不会产生影响DateTimeOffset.Now?有什么方法可以解决这个问题吗?
作为澄清的一点,我真的不想改变服务器上的时区.我们正在制定适当的时区独立解决方案.但我仍然很好奇为什么会这样.
当我创建一个新的、干净的 Blazor .NET 6.0 应用程序并启动它(使用 Visual Studio 2022)时,我在浏览器控制台中看到以下错误:
WebSocket connection to 'ws://localhost:60908/BlazorApp3/' failed: (aspnetcore-browser-refresh.js:234)
Run Code Online (Sandbox Code Playgroud)
还有其他人知道这个吗?知道这是否是 VS2022 的错误以及如何修复它?
我正在使用Mono Cecil在另一个方法中注入Code.我想在我的代码周围添加一个Try-Catch块.
所以我用try catch块编写了一个HelloWorld.exe并对其进行了反编译.
在Reflector中看起来像Try-Catch:
.try L_0001 to L_0036 catch [mscorlib]System.Exception handler L_0036 to L_003b
Run Code Online (Sandbox Code Playgroud)
我如何通过mono cecil注入这样的试试?
我假设Application.Exit导致应用程序以imemdiately退出,但我可以看到,根据下面的示例,它将在for循环结束后退出.此命令何时强制应用程序退出?
for (int I = 0; I < 1000; I++)
{
if (I == 1)
Application.Exit();
}
Run Code Online (Sandbox Code Playgroud) 我需要根据控件上的依赖项属性设置列表框的ItemsPanelTemplate属性.我如何使用DataTemplateSelector来做到这一点?
我有类似的东西:
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<!-- Here I need to replace with either a StackPanel or a wrap panel-->
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
Run Code Online (Sandbox Code Playgroud)
谢谢
c# ×6
asp.net ×2
azure ×2
wpf ×2
.net ×1
.net-6.0 ×1
asp.net-mvc ×1
azure-devops ×1
blazor ×1
datetime ×1
exit ×1
firefox ×1
javascript ×1
jsperf ×1
loops ×1
mono.cecil ×1
performance ×1
vtl ×1
windows ×1
winforms ×1