小编Mar*_*rds的帖子

实体框架和多线程

我们在设计多线程实体框架驱动的应用程序时遇到一些麻烦,并希望得到一些指导.我们在不同的线程上创建实体,将实体添加到集合中,然后将数据绑定到各种wpf控件.ObjectContext类不是线程安全的,所以管理它我们基本上有两个解决方案:

解决方案1具有单个上下文并小心使用锁定以确保没有2个线程同时访问它.这实现起来相对简单,但要求上下文在应用程序期间保持活动状态.像这样打开一个上下文实例是不是一个坏主意?

解决方案2是按需创建上下文对象,然后立即分离对象,然后将它们保存在我们自己的集合中,然后重新附加它们以进行任何更新.但是这有一些严重的问题,因为当分离对象时,它们会丢失对导航属性对象的引用.还有一个问题是,2个线程仍然可以尝试访问单个对象,并且都尝试将()附加到上下文.此外,每次我们想要访问实体导航属性时,我们都需要提供新的上下文.

问:两种解决方案中的任何一种都有效,如果不是,您如何建议我们解决这个问题?

.net multithreading frameworks entity

41
推荐指数
2
解决办法
5万
查看次数

在ASP.NET 5(Core)中添加对类库项目的引用的问题

嗨首先我知道之前已经提到了类似的问题,但它们现在已经过时了,我使用的是Visual Studio 2015 rtm和ASP.NET 5 beta 6.

我正在尝试将正常(即非vnext)类库项目的引用添加到我的vnext Web应用程序中.如果我按照以下步骤操作:

  1. 创建一个新的Web应用程序项目

  2. 从project.json中删除"dnxcore50"框架

  3. 为普通类库添加新项目

  4. 手动将类库项目移动到/ src文件夹中(否则我收到错误"依赖MyClassLibrary1> = 1.0.0-*无法解析.")

  5. 添加对此类库的引用

现在它构建正常,但如果我尝试添加"使用MyClassLibrary1",它说MyClassLibrary1在当前上下文中不存在.

如果我然后将类库更改为目标.NET 4客户端配置文件(默认情况下为4.6)它可以正常工作,但.NET 4已满或4.5不起作用.我需要它是4.5或更高,因为我需要引用需要它的各种包.理想情况下,一切都只是针对4.6.

这是我的project.json文件:

{
  "webroot": "wwwroot",
  "userSecretsId": "aspnet5-WebApplication2-6767111e-0eba-42a4-9d68-4b6c20767518",
  "version": "1.0.0-*",

  "dependencies": {
    "EntityFramework.SqlServer": "7.0.0-beta6",
    "EntityFramework.Commands": "7.0.0-beta6",
    "Microsoft.AspNet.Mvc": "6.0.0-beta6",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta6",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Google": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta6",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta6",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta6",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta6",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta6",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta6",
    "Microsoft.Framework.Logging": "1.0.0-beta6",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta6",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta6"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting …
Run Code Online (Sandbox Code Playgroud)

.net asp.net asp.net-core

17
推荐指数
2
解决办法
2万
查看次数

让用户长时间登录ASP.NET 5网站

我希望选择"记住我"选项的用户长时间(例如3个月,或直到他们清除cookie)登录我的网站.目前我必须每20分钟左右再次登录.

我正在使用ASP.NET 5/vnext/mvc 6(beta 7).我的网站基于Visual Studio作为模板项目的代码.我知道其他问题也有类似的问题,但我不知道它在新的ASP.NET中是如何应用的.

我在我的Startup.ConfigureServices方法中有这个代码,但它似乎没有效果:

    services.ConfigureIdentityApplicationCookie(options =>
    {              
        options.ExpireTimeSpan = TimeSpan.FromDays(90);
        options.SlidingExpiration = true;
        options.AutomaticAuthentication = true;
        options.LoginPath = new PathString("/Account/Login");
        options.LogoutPath = new PathString("/Account/LogOff");
    });
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑

使用fiddler,登录时的响应包含此cookie数据:

响应发送的642个字节的Cookie的数据:设置Cookie:.AspNet.Microsoft.AspNet.Identity.Application = CfDJ8P8cKnxL87ZMjh0duvm7eKbBbA_vf1ECr95KgPd4MNsKBj0_SljMLWLPNzNFIr4PQTG1ZjVyQ7cfFMEehcI5JZrOlVVHfZ_SD29jN1vdhsdUMPTysvhvo6RlnDHq5YwFdnTNqw-_ia4cGWk8Iw05PJHsQ0mws_e0DzWpX088kysJuU0LcNoyPA22nyMoGrK1RP1Bax_XwixdO6jLQx164lqRqVYi6ys3VVPJP0aLOg3w4CovxcAemgMQEhAcNUdP6Q0rnBmfBn7FZR_kNEgXoiMkNNgBDwUuVyiweU3fw5rzE-mmBPo2IYBJWRoaSzNLcUV5gSTpDT2n8IMh4nPlTzGrFIUgCpHDhpmXJJ3EneC5i-eVaLGeQG1FAIBZZ-oNlolwdkXi63bXpHuRME9cnYLTm3cDpfooXKq0_Rn7ls4lN-wCF5kGvz6ALruUaPWNERvcKlccix7o3B_-rj1q5yhn1bKO2vumArRaq-QpHb2djaN84IdFBOw1CSJLpeQKeP3qrdJD8-GYl6chvbJ4FbA; expires =周一,2016年1月4日10:40:35 GMT; 路径= /; 仅Http

你可以看到最后到期时间是90天,这是正确的,但它仍然会在20分钟左右登出我.

c# asp.net asp.net-mvc asp.net-core

9
推荐指数
1
解决办法
1599
查看次数

UWP 动画列表项移动

在 ListView 中,添加和删除项目是通过一个漂亮的动画完成的。然而,当我移动一个项目(或对集合进行排序)时,没有很好的动画,它似乎只是重置。

有谁知道我如何将物品移动到新位置的动画?我在 ios 应用程序中看到过这种行为,在 UWP 中肯定有可能吗?

你可以在这个演示中看到删除动画很好,重新排序不是。

在此处输入图片说明

简单的代码示例:

xml

<Page
    x:Class="ExampleApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ExampleApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid>
        <Button Name="btnReorder" Content="Reorder" Click="btnReorder_Click" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="32" />
        <Button Name="btnRemove" Content="Remove" Click="btnRemove_Click"  HorizontalAlignment="Left" Margin="100,10,0,0" VerticalAlignment="Top" Height="32" />
        <ListView Name="list" Margin="0,200,0,0">
            <ListView.ItemTemplate>
                <DataTemplate x:DataType="local:MyData">
                    <Rectangle Width="100" Height="20" Fill="{x:Bind Path=Brush}" />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </Grid>
</Page>
Run Code Online (Sandbox Code Playgroud)

代码

using System.Collections.ObjectModel;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;

namespace ExampleApp
{
    public sealed partial class MainPage : Page
    {
        ObservableCollection<MyData> …
Run Code Online (Sandbox Code Playgroud)

.net c# xaml uwp

5
推荐指数
1
解决办法
491
查看次数