VS2013,EF6代码优先,MVC,(VB)
我想更好地理解使用单个上下文或将DbSets拆分为多个上下文的优缺点.我一直在阅读多个DbContexts上的一些旧SO帖子,并没有找到我想要的东西; 关于何时何地使用或不使用多个DbContexts的综合声明.
对于单个用户在自己的硬件上运行Windows Forms等程序的情况,似乎没有理由为了便于使用代码而有多个上下文.
对于运行多个企业的主要业务程序的Web应用程序,似乎多个DbContexts对于安全性和管理至关重要.
但是如果我正确地考虑这个问题,我想得到确认.我能想到的只有以下几点,但后来我对这个环境很陌生:
单一背景的优点:
单一背景的缺点:
这就是我的全部.我完全不了解双方,并且鉴于我们可以使用的环境不同,看起来一个或多个环境的答案会有所不同.
我目前正在开发一个拥有会员资格的网站,还有一个可下载的应用程序,它将是一个在用户硬件上运行的个人应用程序.在这种情况下,我认为两者的单一上下文都是有道理的,但在我深入研究之前,我会要求对此进行一些讨论.我认为对环境有所了解的其他人将继续遇到同样的问题.
我还注意到微软认为适合在EF6及更高版本中为EF添加多个上下文功能,所以显然必须有一些编程环境能够产生令人信服的理由来拥有多个上下文.
感谢您的投入.
最诚挚的问候,艾伦
目标: 使用 Windows 10 功能,将加密的文件文件夹发送到远程 pc,并允许解密文件以在远程 pc 上使用。
(首次发布后更新)
我已经研究了一段时间,但没有成功。为简单起见,我使用一个包含 3 个 .pdf 文件的文件夹来完成此操作,以确认我了解该过程 - 我不了解。我按照以下步骤操作:
1) Right-clicked on folder > Properties > Advanced > checked 'Encrypt contents...' >
OK'd my way out when the encryption was complete
The folder and file icons show a lock symbol on them and the filename and extension remained the same as before.
2) Exported the encryption certificate to a .pfx
3) Imported the exported .pfx from the previous step into the remote pc …Run Code Online (Sandbox Code Playgroud) VS2013,MVC5,Razor,VB
我想在"已回答"这个词前面留出空格.如何强制空格进入以下Razor代码块?
@Code If Model.DisplayAnsweredFlag Then
@If Model.Answered Then
@Html.Raw("Answered")
End If
End If
End Code
Run Code Online (Sandbox Code Playgroud)
在html.raw()中,空格本身或前面文本中的空格似乎不会被编码到页面中.但我也不能在代码块中使用' '或'@ ',因为它的语法不正确.
如果我用不好的技术进行编码,请提供建议,或者如果有不同的方法可以获得空格,请告知.
虽然我已经编写了一段时间,但我真的只是进入了我所谓的中级编码器.所以我理解dispose()的原理,即释放为变量和/或资源保留的内存.我也发现有时使用EF我必须dispose()以便其他操作正常工作.我不明白的只是需要发布的内容,何时使用dispose().
例如,我们不处理变量,如字符串,整数或布尔值.但是在某个地方我们越过"一条线",我们使用的变量和/或资源需要被处理掉.我不明白这条线在哪里.
在知道何时使用dispose()时,是否有一个原则或几个广泛的原则适用?
我阅读了这些SO帖子(具体情况,更多关于如何而不是何时)但我不觉得我理解何时使用dispose()的基础知识.我看到一条评论询问是否在变量超出范围时释放内存,这引起了我的注意,因为直到我看到响应为否,它才会因为超出范围而被释放,我会想到当它超出范围时它会被释放.我不想成为第二个链接中的一个人称为"无能的开发者",虽然我认为这有点苛刻.我们中的一些人还在学习.
所以这就是为什么我的问题是"什么决定何时真正需要处置?"
我的问题是少一个多么多的一个时候.当然评论如何有用,但即使调用dispose()的方法是一个Using语句,我仍然需要知道什么时候.
编辑原始问题: 我知道这是一个很长的解释,标记为重复的评论笔记请求,这不是一个咆哮,我只是不知道如何确保我专注于我的精确问题.很多时候,我们只是匆匆走过我们问的方式.正如我在这篇长篇文章的最后提到的那样,在我们专注于我的问题后,我将编辑所有这些,假设我们到达那里.根据我所读到的内容,我认为这是一个重要的问题.
提议的"答案"帖子是一篇很棒的帖子,但并没有真正回答我的问题.CodeNotFound下面的评论也提供了一个很好的链接,但它也没有真正回答我的问题.我提供了有关这些帖子的评论,以尝试帮助改进我的确切问题:
我什么时候应该在.NET中处理我的对象?:第一个答案以评论开头
一次性对象表示持有CLR本质上不知道的有价值资源的对象.
不幸的是,我不明白" 一次性对象...... CLR本质上没有意识到 " 这一术语包括在内. 这就是我要问的问题.我怎么知道某件事是否属于我必须处理的范畴?我们一直在代码中定义要使用的东西.我们何时越过这条线并成为我需要处置的对象()?顺便说一句,我注意到那篇文章的作者从未标出答案.我不知道这是否意味着他不觉得这个问题得到了回答,或者他的跟进是否很差,但我希望我能够提炼一点我希望了解的内容.当你仔细观察答案时,他们并没有真正解决哪些对象需要开发人员处理它们的问题,或者我如何知道如何识别哪些对象.我只是不知道我创建的对象或事物需要我负责处理.我认为GC和其他条款发挥作用,但同样,这就是方法.显而易见的是,大多数经验丰富的专业开发人员都知道他们创建的东西何时需要被处理掉.我不明白怎么知道那.
正确使用IDisposable界面:显然是一个流行的答案(1681 upvotes),但明确的答案开始于
Dispose的目的是释放非托管资源".
好的,但我的问题是如何通过查看它是非托管资源的东西来了解?我不理解以下说明如何应用到什么需要处置.
如果你在.NET框架中找到它,那么它就是托管的.如果你自己去探索MSDN,它是无人管理的 ...你现在负责清理它."
我不明白如何使用这种类型的解释来分类我需要处理的东西()和我不需要的东西..net框架中有各种各样的东西; 如何分离出需要我处理它们的东西?我该怎么看我告诉我我对此负责?
在那之后,这个答案就在约大篇幅讲了如何处置(),但我仍然停留在背什么需要处置.为了让这个话题进一步复杂化,该作者后来说:"现在我们将...
摆脱非托管资源(因为我们必须),和
摆脱托管资源(因为我们想要帮助)
所以现在我需要考虑处理一组使用内存的全新对象,我不知道它们是什么.该答案的作者后来说
对于任何喜欢这种答案风格的人(解释原因,如何变得明显)......
我理解作者是在暗示其他文章,但作者的建议是理解"为什么"使得"如何"显而易见并不合法,因为对一个人来说显而易见的事情对另一个人来说并不总是显而易见的.甚至在那时,作者更多地关注为什么以及如何,并且我的问题是什么时候,意味着什么需要被处理(),而不是当我完成它时.我知道当我做完事情时,我只是不知道 …
PowerShell 脚本中所需的实际行是:
$tsd = [datetime]::ParseExact($TSDiff,'yyyyMMddhhmmsstt',$null)
Run Code Online (Sandbox Code Playgroud)
但$TSDiff所使用的变量的时间表示为,没有 AM/PM:
20171023212800
Run Code Online (Sandbox Code Playgroud)
这是一种 24 小时格式,其中 11 pm 用 23 表示。它是使用 FTP 请求检索的,该请求似乎只返回 24 小时格式字符串,没有 AM/PM。
对此进行分解,以下 PowerShell 命令可以工作:
[datetime]::ParseExact("20171023092800",'yyyyMMddhhmmss',$null)
Run Code Online (Sandbox Code Playgroud)
但以下 PowerShell 命令不起作用:
[datetime]::ParseExact("20171023212800",'yyyyMMddhhmmss',$null)
Run Code Online (Sandbox Code Playgroud)
第二行不起作用的原因很清楚;小时数字采用 24 小时格式,如$TSDiff本文开头列出的那样。
PowerShell 中有一种简单的方法可以将字符串转换20171023212800为 吗20171023092800PM?
下面的代码是基于关闭此的帖子:
我的问题:我无法看到我做错了什么让INotifyPropertyChanged导致textBox1绑定自动反映这个简单示例中的更改.
XAML.我添加了textBox2来确认属性正在改变
<StackPanel>
<Button Margin="25" Content="Change the Value" Click="Button_Click"/>
<Label Content="{}{Binding MyTextProperty}"/>
<TextBox Name="textBox1" Text="{Binding MyTextProperty}"/>
<Label Content="updated using code behind"/>
<TextBox Name="textBox2" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
代码隐藏
Partial Class MainWindow
Private vm = New ViewModel
Sub New()
InitializeComponent()
DataContext = New ViewModel()
textBox2.Text = vm.MyTextProperty
End Sub
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
vm.ChangeTextValue()
textBox2.Text = vm.MyTextProperty
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
视图模型
Public Class ViewModel
Implements INotifyPropertyChanged
Private _MyTextValue As String = String.Empty
Public Property MyTextProperty() …Run Code Online (Sandbox Code Playgroud) 我正在尝试为新应用程序(桌面WPF,还有asp.net网站)规划帮助功能.我花了一些时间来研究这个,似乎没有太多的信息.我已经看到了各种解决方案,例如此处,但在继续之前,最好先向此论坛寻求帮助.
是微软的HTML Help Workshop的仍然是一个很好的路要走?是否有一些特定的帮助系统解决方案是很多人的首选,或者是有多少程序员和解决方案?
在WPF项目中:
我相信这个C#代码行只是向User Interface对象添加一个处理程序,并在调用该处理程序时强制该参数为'false'.
item.MouseDoubleClick += delegate { otherMethod1(false); };
Run Code Online (Sandbox Code Playgroud)
在添加没有参数的VB处理程序时我是否正确这将是正确的语法?
AddHandler item.MouseDoubleClick AddressOf otherMethod2
Run Code Online (Sandbox Code Playgroud)
如何在VB中用上面第一行中的参数表示一个处理程序?
PowerShell 脚本 #1 执行以下操作:
Performs FTP ops ending with saving updated remote directory data in a local file
Run Code Online (Sandbox Code Playgroud)
该脚本会快速运行,直到必须使用 FTP 获取远程目录数据。最好将远程目录数据检索删除到不同的 PowerShell 脚本 #2 中。
这篇 SO 文章解释了从脚本中启动脚本。但在这种情况下,第一个脚本似乎在第二个脚本执行时暂停。
我如何编写脚本 #1 以便脚本 #2 被启动并被遗忘,并且脚本 #1 继续并快速完成,让脚本 #2 在后台完成。
vb.net ×5
wpf ×3
asp.net-mvc ×2
c# ×2
powershell ×2
.net ×1
asp.net ×1
certificate ×1
chm ×1
dispose ×1
encryption ×1
help-system ×1
html-help ×1
mvvm ×1
razor ×1