很抱歉还有关于EF4上下文生命周期的另一个问题,但我一直想知道这一点,我似乎没有找到答案.我不是很熟悉很多模式或过于复杂的东西(在我看来),所以我想保持简单.
我使用ASP.NET应用程序,其中上下文由每个http请求管理,在我看来这是一个非常好的方法.
但是我现在正在使用winforms应用程序,如果我只是为每个查询创建上下文,我有时会遇到效果不佳的事务或报告.并不是说这个性能问题是一个非常有问题的事情,我只想听听ASP.NET中针对winforms的HTTP请求是否有一个简单的策略?
我正在编写一个概念验证应用程序,这非常简单.基本上它由一个UI组成,其中"Note"类型对象列表显示在QML ListView中.
然后,我有几个类,这是类似的东西:
#ifndef NOTE_H
#define NOTE_H
#include <string>
using namespace std;
class Note
{
public:
Note(QObject* parent = 0)
: QObject(parent)
{
}
Note(const int id, const string& text)
: _id(id), _text(text)
{
}
int id()
{
return _id;
}
const string text()
{
return _text;
}
void setText(string newText)
{
_text = newText;
}
private:
int _id;
string _text;
};
#endif // NOTE_H
Run Code Online (Sandbox Code Playgroud)
然后一个存储库:
class NoteRepository : public Repository<Note>
{
public:
NoteRepository();
~NoteRepository();
virtual shared_ptr<Note> getOne(const int id); …Run Code Online (Sandbox Code Playgroud) 我想构建一个使用实体框架核心的WPF应用程序,以便我可以处理SQLite数据库.
然后,我会执行以下操作,例如:
Microsoft.EntityFrameworkCore.Sqlite和Microsoft.EntityFrameworkCore.Tools.MainWindow.xaml并为事件添加一个事件处理程序Click,使得xaml看起来像:<Window x:Class="WPFEFCoreDeploymentTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Click="ButtonBase_OnClick"></Button>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
MainWindow.xaml.csnamespace WPFEFCoreDeploymentTest
{
using System.Linq;
using System.Windows;
using Microsoft.EntityFrameworkCore;
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
using (var context = new SomeContext())
{
if (context.Database.GetPendingMigrations().Any())
{
context.Database.Migrate();
}
}
}
}
public class SomeContext : DbContext
{
public DbSet<Test> Tests { …Run Code Online (Sandbox Code Playgroud) 好吧,我正在使用我的项目的RESTful后端,并通过jquery提交数据.
我必须说werkzeug调试器非常适合调试,特别是当你是一个像我这样可怕的python程序员时.您出于意图调查异常,并使用调试器呈现的html检查代码和变量.
但是,当您发送post请求而不是get时,如果在后端代码上抛出异常,当然浏览器将不会呈现响应文本.
有什么技术可以用来呈现响应文本,考虑到它有javascript和一切吗?
我正在尝试不同的事情,例如尝试将响应文本注入弹出窗口,例如:
$.postJSON = function(url, data, callback, error_callback) {
return jQuery.ajax({
'type': 'POST',
'url': url,
'contentType': 'application/json',
'data': JSON.stringify(data),
'dataType': 'json',
'success': callback,
'error': error_callback
});
};
$.postJSON('/the_uri', {'foo': 'bar'},
function(response) {
var a = 0;
},
function(response) {
var html = response.responseText;
var my_window = window.open('', 'mywindow1', 'width=350,height=150');
$(my_window.document).find('html').html(html);
});
});
Run Code Online (Sandbox Code Playgroud)
但这不会很好地处理JavaScript.
有没有人有任何建议?
是否可以禁用nginx的自定义错误页面 - 如果我可以调用它们 - 来显示我的框架的异常页面?
我无法真正看到我在wtml中呈现的werkzeug调试工具...
UPDATE
好吧,我必须制作一个非常简单的烧瓶应用程序才能工作,我将发布这些内容:
/home/my_user/.virtualenvs/nginx-test/etc/nginx.conf
worker_processes 1;
events { worker_connections 1024; }
http {
server {
listen 5000;
server_name localhost;
access_log /home/my_user/.virtualenvs/nginx-test/lib/nginx/access.log;
error_log /home/my_user/.virtualenvs/nginx-test/lib/nginx/error.log;
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
}
}
}
Run Code Online (Sandbox Code Playgroud)
/home/my_user/dev/nginx_test/___init___.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
raise Exception()
if __name__ == '__main__':
app.run('0.0.0.0', debug=True)
Run Code Online (Sandbox Code Playgroud)
PYTHONPATH环境变量:
$ echo $PYTHONPATH
/home/my_user/dev/
Run Code Online (Sandbox Code Playgroud)
我如何运行uwsgi:
$ uwsgi -s /tmp/uwsgi.sock --module nginx_test --callable app
Run Code Online (Sandbox Code Playgroud)
我如何运行nginx:
$ nginx -c ~/.virtualenvs/nginx-test/etc/nginx.conf -p ~/.virtualenvs/nginx-test/lib/nginx/
Run Code Online (Sandbox Code Playgroud)
如果我点击根页面:

如果我手动运行nginx,如: …
所以,我在Windows 8.1机器上安装了Visual Studio 2013.我想试验它并创建一个新的Windows应用商店网格应用.我想在SQLite数据库上保留数据,显然是WinRT应用程序的首选数据库.
快速找到所需的vsix链接,以便能够使用SDK:SQLite下载页面,并下载sqlite-winrt81-3080002.vsix.
安装它,然后在我的项目中,添加对新安装的SDK的引用(右键单击引用,添加引用,导航到Windows,选择扩展并勾选SQLite for Windows Runtime(Windows 8.1)复选框.
还很快发现它不能在任何CPU上编译.在Configuration Manager上,选择了Debug,x64活动平台,这使我能够编译应用程序.
最后,在尝试使用命名空间时,SQLite我注意到VS 2013没有识别它.尝试了很多东西,例如直接添加对.dll的引用,探索组件以查看哪些命名空间可用(哪些没有显示任何内容),而且我很快就没有想法了.因为它有点新鲜,并且利益有限,谷歌,救世主,今天不想救我.
那么,如何在针对Windows Runtime 8.1的Visual Studio 2013项目中使用SQLite SDK呢?
更新 愚蠢的我,以为在地铁风格的土地上没有管理的土地(.net).很抱歉造成任何混淆.
从Windows 7升级到Windows 10并从附带调试器的Visual Studio 2013 Update 5运行我的WPF应用程序后,我遇到了这种情况.
在运行一些基本的图像处理操作时,调试输出开始被EventSourceException: No Free Buffers available from the operating system (e.g. event rate too fast)消息淹没,导致被调试的进程显着减慢.
在没有安装Visual Studio的调试器的情况下运行该过程的行为正常.
当我用Google搜索时,我在网上找不到太多信息.它与EFW(Windows的事件跟踪)有关,我不知道它是什么.
代码库不小,所以很难跟踪异常的来源,因为要求Visual Studio停止所有异常并不会实际停止在此异常源上.
有谁可以帮助摆脱这个例外?
UPDATE
我使用Resharper Ultimate 2016.1.卸载DotTrace后我意识到卸载了一些ETW服务.但卸载Resharper并没有帮助,问题仍然存在.
我正在尝试在我的Raspberry Pi(运行arch linux)上运行xsp包附带的示例应用程序,但不幸的是,在将任何http响应发送到浏览器之前,显然连接已关闭.我在chrome上收到"NO DATA RECEIVED"消息.
然而,xsp只输出"Application_Start"而没有其他任何事情发生(除了chrome没有收到数据)
这是我做的:
$ xsp2
xsp2
Listening on address: 0.0.0.0
Root directory: /srv/http/test
Listening on port: 8080 (non-secure)
Hit Return to stop the server.
Application_Start
Run Code Online (Sandbox Code Playgroud)
Chrome的输出:
No data received
Unable to load the webpage because the server sent no data.
Here are some suggestions:
Reload this webpage later.
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.
Run Code Online (Sandbox Code Playgroud)
当然在我的Linux PC机上运行正常.
如果有人得到任何见解,而不是我试图从我的35美元的董事会中拿走太多,请告诉我?
假设您在画布上绘制了贝塞尔样条线,如下所示:
<Canvas x:Name="SomeCanvas" Width="50" Height="50" Background="Black">
<Path x:Name="SomePath" Data="M0,0C10,10 10,50 50,10" Stroke="Yellow" StrokeThickness="1"/>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
您如何确定画布中的哪些像素与路径中心相交(意味着忽略笔划粗细)?
我正在考虑实现处理多个数据源的单个工作单元的选项 - 实体框架.我想出了一个尝试性的方法 - 现在处理一个单一的背景 - 但它显然不是一个好主意.
如果我们要分析下面的代码,你会认为这是一个糟糕的实现吗?交易范围的生命周期是否存在潜在问题?
当然,如果我们用不同的上下文包装事务范围,如果第二个context.SaveChanges()失败,我们将被覆盖...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Transactions;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
using(UnitOfWork unitOfWork = new UnitOfWork())
{
var repository = new EmployeeRepository(unitOfWork);
var employee = repository.CreateOrGetEmployee("Whatever Name");
Console.Write(employee.Id);
unitOfWork.SaveChanges();
}
}
}
class UnitOfWork : IDisposable
{
TestEntities _context;
TransactionScope _scope;
public UnitOfWork()
{
_scope = new TransactionScope();
_context = new TestEntities();
}
public void SaveChanges()
{
_context.SaveChanges();
_scope.Complete();
}
public …Run Code Online (Sandbox Code Playgroud)