是否可以在实体框架中创建关联b/t 2个非关键字段?
示例:在遗留应用程序中获取2个表(即键/结构不能更改)
Order (
OrderId : int : PK
OrderNo : varchar
)
OrderDetails (
DetailRecordId : int : PK
OrderNo : varchar
)
Run Code Online (Sandbox Code Playgroud)
在实体框架,我想创建关联B/T Order和OrderDetails由OrderNo字段,这是不在任表或数据库中的一个FK关系的主键.
在我看来,这不仅应该是容易做到的,而且是使用像EF这样的东西的一个原因.但是,似乎只允许我使用实体键创建关联.
根据维基百科,TripleDES支持56,112和168位密钥长度,但System.Cryptography.TripleDESCryptoServiceProvider.LegalKeySizes表示它只接受128和192位密钥长度.
我正在开发的系统需要可以互操作(我的代码加密的数据需要在PHP,Java和Objective-C中解密),在这种情况下我不是正确的.
那么我应该相信谁呢?我怎样才能确定我的加密数据是否可移植?
我有600万行数据要插入到我的SQL Server数据库中.我可以用600万INSERT语句(通过我的计算运行需要18个小时)来缓慢地进行,或者我可以尝试BULK INSERT.
BULK INSERT存在无法转义字符的问题,但这种情况下的数据非常简单,所以不应该遇到这个问题.
但是,SQL Server似乎不希望将任何形式的日期/时间数据插入到字段中.
这是表(psuedo-SQL)
CREATE TABLE Tasks (
TaskId bigint NOT NULL IDENTITY(1,1) PRIMARY KEY,
TriggerId bigint NOT NULL FOREIGN KEY,
Created datetime NOT NULL,
Modified datetime NOT NULL,
ScheduledFor datetime NULL,
LastRan datetime NULL,
-- and about 10 more fields after this
)
Run Code Online (Sandbox Code Playgroud)
这是我的BULK INSERT声明:
SET DATEFORMAT dmy
BULK INSERT Tasks
FROM 'C:\TasksBulk.dat'
WITH (
-- CHECK_CONSTRAINTS is not necessary as the only constraints are always enforced regardless of this option (UNIQUE, PRIMARY KEY, and …Run Code Online (Sandbox Code Playgroud) 我想我已经开发了一种货物崇拜编程习惯:
每当我需要创建一个类线程安全时,例如一个具有Dictionary或List的类(完全封装:永远不会直接访问并仅由我的类的成员方法修改),我创建了两个对象,如下所示:
public static class Recorder {
private static readonly Object _devicesLock = new Object();
private static readonly Dictionary<String,DeviceRecordings> _devices;
static Recorder() {
_devices = new Dictionary<String,DeviceRecordings>();
WaveInCapabilities[] devices = AudioManager.GetInDevices();
foreach(WaveInCapabilities device in devices) {
_devices.Add( device.ProductName, new DeviceRecordings( device.ProductName ) );
}
}//cctor
// For now, only support a single device.
public static DeviceRecordings GetRecordings(String deviceName) {
lock( _devicesLock ) {
if( !_devices.ContainsKey( deviceName ) ) {
return null;
}
return _devices[ deviceName ];
}
}//GetRecordings
}//class
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我将所有操作包装 …
我没有使用MVC,URL重写,自定义HTTP模块等.在对继承System.Web.UI.Page或通过System.Web.HttpContext.Current.Session的网页的Session属性进行基本调用时,我得到以下错误:
只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态.还请确保System.Web.SessionStateModule或自定义会话状态模块包含在<configuration>\<system.web>\<httpModules>应用程序配置的部分中.
在做了一些研究之后,我已经实现了如下的Web.config,但错误仍然存在.我正在使用内置的Web服务器从Visual Studio 2010调试Web应用程序.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<sessionState mode="InProc" timeout="60" cookieless="false" />
<pages enableSessionState="true" />
<httpModules>
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
</httpModules>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我的MVVM项目有这个ViewModel:
class ListViewModel : ViewModelBase {
public ObservableCollection<ListItemviewModel> Items { ... }
}
class ListItemViewModel : ViewModelBase {
public String Name { ... }
public Boolean IsChecked { ... }
public Boolean IsEnabled { ... }
}
Run Code Online (Sandbox Code Playgroud)
编写XAML似乎很简单:
<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridCheckBoxColumn Header="Is checked" Binding="{Binding IsChecked}" />
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
但是,我怎么能得到这么当ListItemViewModel的IsEnabled财产是false在DataGridCheckBoxColumn"该行中的蜂窝被禁用?
我尝试设置IsReadOnly={Binding IsDisabled}(并添加IsDisabled属性ListItemViewModel,但无济于事) - 我认识到将禁用/启用整个列,而不是单个单元格.
我也试过这些指令(如何在绑定到ObservableCollection时禁用DataGrid中的单元格):
<DataGridCheckBoxColumn Header="Is checked" …Run Code Online (Sandbox Code Playgroud) 我在 .NET 4.6.1 上的 ASP.NET 4.5 上使用 ASP.NET MVC 5。
我有两个控制器:
FooController
FooIndexController
Run Code Online (Sandbox Code Playgroud)
这是因为 的 Index 操作Foo很复杂,所以我觉得它们最好在自己的单独Controller类中。
我正在使用基于属性的路由。我的 ASP.NET MVC 版本Order在RouteAttribute.
我有这些动作:
class FooController {
// Returns a view to allow editing of the Foo entity
[HttpGet]
[Route("~/{tenant}/foo/{fooName}", Order=2)]
public ActionResult Edit(String fooName, FooViewModel model) {
...
}
}
class FooIndexController {
// Returns a CSV file download listing all of the Foo entities
[HttpPost]
[Route("~/{tenant}/foo/csv", Order=1)]
public ActionResult IndexCsv() {
... …Run Code Online (Sandbox Code Playgroud) 在Chrome开发者工具(自Chrome 63起)的“元素”窗口中选择一个元素时,“计算”标签将显示当前计算出的宽度和高度以及所有其他非默认属性。
但是据我所知,它并没有描述,解释或揭示来源或原因为一个元素的框的大小,如果它的大小是不是由于直接向直接设置属性,或者财产继承或级联。
考虑以下示例:
<div id="div1">
<p id="p1">Lorem ipsum</p>
</div>
Run Code Online (Sandbox Code Playgroud)
使用默认HTML5样式表(即div, p { display: block;})Chrome浏览器将显示计算的宽度和高度#div1,并#p1是相同的,但无处没有指出的高度#div1是造成#p1,也不是说#p1的身高是由它的内容引起的(也考虑到line-height,font-size以及其他相关的性质)。
如果将样式表更改为此:
#div1 { height: 500px; }
#p1 { height: 75%; overflow: hidden; }
Run Code Online (Sandbox Code Playgroud)
...然后,“开发人员工具”窗口应提供一些指示,表明#div1的高度直接来自height: 500px;属性,而#p1的高度现在源自#div1而不是其内容。
Chrome开发人员工具或JavaScript工具中是否存在此功能?
今天是我学习C#的第一天.我对Java和C很有经验,通常不会遇到我无法解决的问题.我一直害怕使用Visual Studio,因为当我用来运行我的汇编程序时,我会收到永无止境的错误.今天我想要运行一个简单的hello world程序.运行程序后,我收到以下错误.
'dotnet.exe' (CoreCLR: DefaultDomain): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.7\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Users\cansh_000\source\repos\Program\Program\bin\Debug\netcoreapp2.0\Program.dll'. Symbols loaded. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.7\System.Runtime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.7\System.Console.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program …
我的 Serilog 配置代码如下所示:
Log.Logger = new LoggerConfiguration()
.Enrich.WithExceptionDetails()
.Enrich.FromLogContext()
.MinimumLevel.Warning()
// .MinimumLevel.Override("Microsoft", LogEventLevel.Verbose)
// .MinimumLevel.Override("System", LogEventLevel.Verbose)
// .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Verbose)
.WriteTo.Console( outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate )
// .WriteTo.File()
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
我想在运行时更改此配置,不幸的是,因为 Serilog 使用了“流畅”风格的 API,这使它有些混乱。例如,如果我想在运行时启用或禁用控制台和文件日志记录:
Boolean enableConsoleLogging = ...
Boolean enableFileLogging = ...
LoggerConfiguration builder = new LoggerConfiguration()
.Enrich.WithExceptionDetails()
.Enrich.FromLogContext()
.MinimumLevel.Warning();
if( enableConsoleLogging )
{
builder = builder
.WriteTo.Console( outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate )
}
if( enableFileLogging )
{
builder = builder
.WriteTo.File( ... )
}
Log.Logger = builder.CreateLogger(); …Run Code Online (Sandbox Code Playgroud) c# ×3
.net ×1
asp.net ×1
asp.net-mvc ×1
bulkinsert ×1
css ×1
datagrid ×1
des ×1
encryption ×1
fluent ×1
locking ×1
mvvm ×1
serilog ×1
session ×1
sql ×1
sql-server ×1
t-sql ×1
tripledes ×1
web-config ×1
wikipedia ×1
wpf ×1